Використання запуску з зупинкою невідомого екземпляра


8

Я просто запускаюся наверх, тому я написав дуже базовий сценарій, щоб просто надрукувати файл журналу під назвою: vm-service.confщо я вкладаю /etc/init:

description "Virtual Images"
author      "Me"

start on runlevel [2345]
stop on runlevel [016]
respawn   


script
echo "DEBUG: `set`" >> /tmp/vm-service.log

end script


pre-stop script
    echo "DEBUG: `set`" >> /tmp/vm-service.log
end script

якщо я запускаю sudo start vm-service, він виводить:

vm-service start/running, process 29034

Але коли я запускаю sudo stop vm-service, він видає:

stop: Unknown instance

Я спробував запустити sudo initctl reload-configuration, але я все одно отримую помилку на зупинці.

Я подивився кулінарну книгу, але, мабуть, пропускаю щось очевидне.

Відповіді:


7

Upstart вважатиме роботу зупиненою, якщо основний процес (що виконується, якщо вказано сценарій або строфи exec). Після цього Upstart запустить процес після запуску.

Отже, що відбувається, коли перший сценарій працює і виходить, Upstart розглядає завдання припинено, потім другий сценарій працює і виходить. Якщо запустити команду stop на вже зупиненій роботі, вона надрукує повідомлення, яке ви побачили.

Щоб вирішити це, використовуйте попередню строфу:

pre-start exec foo --bar

post-start exec baz --foo

якщо ви це зробите, Upstart побачить завдання, як розпочате після завершення строки перед запуском, а не як зупинку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.