서비스를 즉시 중지하는 방법은 무엇입니까?

서비스를 즉시 중지하는 방법은 무엇입니까?

나는 스크립트를 사용했다여기시작 및 종료 시 Minecraft 서버를 시작하고 중지하는 서비스를 만듭니다. 스크립트는 기본적으로 GNU 화면에서 서버 jar 파일을 시작합니다(백업과 업데이트도 수행하지만 제대로 작동합니다).

이는 서버를 정상적으로 시작하지만 서버에 메시지를 보낸 다음 명령을 사용하여 서버를 정상적으로 중지하는 대신 갑자기 중지합니다 ( 시스템이 계속 실행 중인 동안 /stop스크립트가 실행되어야 하고 호출되면 실행되기 때문 입니다).sudo service minecraft stop

나는 sudo update-rc.d minecraft defaults 20 01서버가 중지할 첫 번째 프로세스 중 하나인지 확인하기 위해 이것을 사용합니다.

종료가 시작된 후 표시되는 처음 네 줄은 다음과 같기 때문에 이것이 작동한다고 말할 수 있습니다.

[  OK  ] Stopped target Graphical Interface.
         Starting Unattended Upgrades...
[  OK  ] Stopped target Multi-User System
         Stopping LSB: Minecraft server...

그런 다음 중지 중 및 중지됨 메시지가 많이 있습니다. 이 시간 동안 서버가 갑자기 중지되고(클라이언트가 경고 없이 모두 연결 해제됨) 다음과 같은 상황이 발생합니다.

[******] A stop job is running for LSB: Minecraft server (17s / 5min)

이 초는 일반적으로 약 17초까지 지속되며 마지막 몇 개의 화면에는 시스템이 종료되기 전의 정보가 표시됩니다.

이는 서비스가 종료 프로세스 초기에 중지되도록 "알려주지만" 시스템이 종료되는 동안 완료하는 데 시간이 걸린다는 것을 의미한다고 가정합니다(서버에서 경고 보내기, 대기, 저장 등을 하기 때문). 스크립트가 이 작업을 수행하기를 기다리는 상태입니다. 다른 서비스가 중지되어 경고 메시지가 표시되기 전에 모든 클라이언트의 연결이 끊어집니다. 추가해 보았 $network으나 Required-Stop소용이 없었습니다.

내가 해야 할 일은 다른 서비스가 동시에 중지되지 않고 즉시 서비스가 중지되도록 하는 것입니다. 어떻게 해야 하나요?

XenServer에서 Ubuntu 15.04를 사용하고 있습니다.

전체 종료 로그 보기여기.

관련 정보