ожидайте программы для окончания на завершении работы

Править: Вопрос, что это отмечено как возможный дубликат предложений путь к сценарию для предотвращения завершения работы, в то время как это работает. Моя проблема состоит в том, что во время процесса завершения работы, я хочу инициировать сценарий, чтобы работать и позволить ему закончиться, прежде, чем продолжить завершение работы. Я не уверен, что ингибиторы применимы.


На системном запуске у меня есть 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 действительно на самом деле закрывался, и сервер, закрытый правильно - но мой цикл с условием продолжения не работает как ожидалось.

Так, два вопроса:

  1. Что случилось с моим циклом с условием продолжения?
  2. Как я могу заставить Ubuntu ожидать, в то время как этот сценарий выполняется? Я ожидал бы, что Ubuntu не завершит работу, в то время как мой сценарий зависает бесконечно, но это делает так или иначе.
1
задан 2 September 2016 в 17:52

0 ответов

Другие вопросы по тегам:

Похожие вопросы: