В настоящее время я учусь выскочить, играя вокруг. Я думаю, что теперь я понял этот принцип, но у меня возникают трудности со строфой «убить тайм-аут» в новых рабочих местах.
Например, у меня есть следующая работа (имя файла /etc/init/test.conf):
description "test"
start on test
console owner
kill timeout 5
task
exec /root/test
Файл / root / test представляет собой небольшой скрипт оболочки, который выполняется вечно:
while true; do o=1; done;
При выполнении «initctl start test», задание «test» запускается и вызывает скрипт «/ root / test». Я могу убедиться в этом, выполнив «initctl status test», который показывает, что задание работает, а также выполнив «ps -Alf».
Теперь в разделе «kill timeout 5» задание будет уничтожено через 5 секунд. Но вместо этого работа, кажется, работает вечно.
Я хотел бы знать, правильно ли я использую и понимаю строфу тайм-аута. Это важная особенность для меня.
Это на Natty 11.04, но я думаю, что вопрос относится и к другим версиям.
Большое спасибо,
Бинарус
Это не то, что делает kill timeout
; он указывает, сколько времени ждать после отправки вежливого сигнала «прекращения» для завершения процесса, прежде чем бросить и запустить ядерное оружие.
Если вы хотите установить ограничение времени процесса способом upstart
, проще всего, вероятно, периодически вызывать событие timer
и использовать stop on timer
. В качестве альтернативы (и, возможно, в более общем плане) создайте программу-обертку, которая разветвляет небольшой процесс, который отправляет событие после определенного периода времени, и stop on
это событие.
Для получения дополнительной информации и лучших практик, см. «Поваренная книга выскочка» .