종료 명령이 전송 된 경우에도 Apache Tomcat이 올바르게 종료되지 않는 경우 종종 문제가 발생합니다. 필자의 경우 Tomcat 8을 사용하면 성가신 규칙이 발생합니다. 다행히 Windows PowerShell과 netstat
명령을 사용하여 프로세스를 종료하는 간단한 스크립트를 만들 수 있습니다.
다음 PowerShell 스크립트는 출력을 구문 분석하여 netstat
수신 대기중인 프로세스를 찾고 127.0.0.1:8005
PID를 추출한 다음 해당 프로세스를 종료합니다.
netstat -a -o -n `
| select -skip 4 `
| % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
| ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
| % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }
server.xml
다른 포트 또는 IP를 사용하도록 Tomcat을 구성하는 경우 그에 따라 스크립트의 네 번째 줄에서 정규식을 편집하십시오.
마지막으로, 시작 시간에 Tomcat에게 PID를 파일에 저장하도록 명령하고 스위치를 사용하여 강제로 종료하도록 지시 할 수 있기 때문에 Linux에서 상황이 더 낫다는 것을 지적해야합니다. 나중에 'nix 시스템의 종료 스크립트는 이미 프로세스를 죽일 수있는 능력 netstat
은 필요하지 않습니다.