Чтобы остановить остановку при продолжении работы, вы захотите использовать это:
stop on starting rc RUNLEVEL=[016]
Это будет работать, потому что первое, что происходит при вводе «shutdown», - это tunlevel 0 испускается. rc запускается на уровне запуска, а переход из остановленного -> запуска будет полностью блокироваться до тех пор, пока все задания, которые также должны изменить состояние, не завершили это состояние.
Вы хотите, чтобы ваш процесс быстро реагировал на SIGTERM , Если он не ответит в течение 5 секунд, выскочка отправит его SIGKILL. Вы можете поднять это с помощью «kill timeout X».
1 там, кстати, немного сложно, вам нужно убедиться, что ваш запуск включает в себя что-то, начинающееся с уровня запуска [2345] в этот момент, так что пользователь, опустившийся для обслуживания одного пользователя, снова начинает работу. К счастью, большая часть работы пошла на то, чтобы сделать это обычным началом на
start on runlevel [2345]
. Также в некоторых случаях вам нужно что-то продолжать, пока сеть не будет сбита (например, dbus / менеджер). Для этого вы хотите
stop on deconfiguring-networking
Это событие, выпущенное позже при завершении работы, которое также будет заблокировано до тех пор, пока все используемые им работы полностью не завершит свои переходы в состоянии.
В Ubuntu есть готовое решение для этого. Он называется gedit. Откройте терминал, нажав Ctrl + Alt + T и введите
gedit Ctrl
Затем введите все символы внутри gedit. Все они будут записаны. После того, как вы закончите, сохраните записанные символы File > Save в меню.
Надеюсь, это поможет