Використовувати exec
для запуску процес добре, але при зупинці його, якщо вам абсолютно потрібно запустити певний скрипт або набір команд, ви можете використовувати pre-stop
строфу.
pre-stop exec shutdown.sh
Я припускаю, що ви спробували просто використовувати exec строфу, і це не спрацювало, можливо, тому, що вашому демону потрібна спеціальна очистка. Зауважте, що добре поведені демони повинні отримувати сигнал від запуску, коли робота припиняється, і якщо вони обробляють сигнал належним чином, додаткової очистки не потрібно.
Припинення роботи передбачає надсилання на неї SIGTERM. Якщо є щось, що потрібно зробити перед SIGTERM, зробіть це тут. Можливо, сервіси повинні працювати з SIGTERM дуже витончено, тому це не повинно бути необхідним.
якщо є щось критичне, як-от помилка на диску, а збільшення тайм-ауту вбивства не є можливим, попередня зупинка не є поганим місцем для цього
Прочитайте також цей розділ для всього робочого процесу того, що відбувається, коли ви припините роботу. Зверніть увагу, коли виконується попередня зупинка і як подається сигнал після цього процесу, і це те, як нормально обробляється робота з зупинкою завдань.
Моє джерело - офіційна кулінарна книга Upstart за адресою: http://upstart.ubuntu.com/cookbook/