Править: Вопрос, что это отмечено как возможный дубликат предложений путь к сценарию для предотвращения завершения работы, в то время как это работает. Моя проблема состоит в том, что во время процесса завершения работы, я хочу инициировать сценарий, чтобы работать и позволить ему закончиться, прежде, чем продолжить завершение работы. Я не уверен, что ингибиторы применимы.
На системном запуске у меня есть a rc.local
файл, который открывает Minecraft, это работает:
/etc/rc.local:
su -l minecraftUser -c "screen -dmS minecraft /home/minecraftUser/server/wrapper.sh"
Я пытаюсь получить безопасное движение процесса завершения работы, таким образом, я могу предупредить о завершении работы и иметь его, безопасно закрывают Minecraft. Это - то, что я в настоящее время имею:
/etc/init.d/shutdownMinecraft.sh:
su -l minecraftUser -c "screen -S minecraft -p 0 -X stuff \"stop $(printf \\r)\""
while [ -e /proc/$(pidof java) ]; do sleep 0.1; done
echo "Done stopping server" >> /home/minecraftUser/server/logs/latest.log
и символьные ссылки и в rc0.d и в rc6.d:
K01shutdownminecraft -> /etc/init.d/shutdownMinecraft.sh
.. Однако это не работает. Журнал не показывает корректные сообщения завершения работы Minecraft (спасающий мир) и также не показывает то заключительное эхо. Если я запускаю скрипт вручную (sudo ./shutdownMinecraft.sh
), это зависает по-видимому навсегда. ^c
луг показывает мне, Java действительно на самом деле закрывался, и сервер, закрытый правильно - но мой цикл с условием продолжения не работает как ожидалось.
Так, два вопроса: