Tôi đã viết một kịch bản mới nhất để khởi chạy một trình nền trong phiên tmux. Nó hoạt động tốt và đáp ứng quá trình nếu nó chết đột ngột, nhưng tôi dường như không thể dừng nó bằng tay.
Công việc (được gọi là bukkit) trông như thế này:
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"
Khi tôi phát hành, stop bukkit
nó sẽ đóng băng trong ~ 10 giây (đồng hồ ngủ, tôi đoán vậy) và in bukkit start/running, process 2391
. Khi tôi thiết lập để bắt đầu gỡ lỗi, tôi đã tìm thấy những dòng có liên quan trong nhật ký:
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
Tại sao mới bắt đầu tiếp tục quá trình của tôi khi nó được yêu cầu dừng nó?