tmux 세션 내에서 데몬을 시작하는 upstart 스크립트를 작성했습니다. 잘 작동하고 예기치 않게 죽으면 프로세스를 다시 생성하지만 수동으로 중지 할 수없는 것 같습니다.
작업 (북킷)은 다음과 같습니다.
start on filesystem
stop on runlevel [!2345]
respawn
respawn limit 5 30
chdir /home/minecraft/bukkit
expect daemon
kill timeout 30
pre-start script
test -x /home/minecraft/bukkit/craftbukkit-0.0.1-SNAPSHOT.jar || { stop; exit 0; }
end script
pre-stop script
tmux send -t bukkit "stop"
tmux send -t bukkit "Enter"
sleep 10 # Wait for server to shut down properly
end script
exec tmux new-session -d -s minecraft -n bukkit "sudo -u minecraft -- /home/minecraft/java/jre1.6.0_27/bin/java -Xincgc -Xmx1G -jar /home/minecraft/bukkit/craftbukkit-0.0.1-SNAPSHOT.jar"
내가 발행하면 stop bukkit
~ 10 초 동안 정지하고 (잠자기 타이머라고 생각합니다) 인쇄합니다 bukkit start/running, process 2391
. upstart를 디버그하도록 설정하면 로그에서 다음과 같은 관련 줄을 찾았습니다.
Sep 21 19:14:59 cheftest init: bukkit goal changed from start to stop
Sep 21 19:14:59 cheftest init: bukkit main process (2499) exited normally
Sep 21 19:14:59 cheftest init: bukkit main process ended, respawning
Sep 21 19:14:59 cheftest init: bukkit goal changed from stop to respawn
upstart가 프로세스를 중지하려고 할 때 프로세스가 계속 생성되는 이유는 무엇입니까?