Найпростіший спосіб зробити це /etc/init/something.conf
:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec python /path/to/your/script.py
Respawn запустить його резервну копію, якщо він буде вбитий або вийшов із ненульового рівня (як незвичний виняток). Це допоможе повернутися до Ubuntu 10.04.
Якщо у вас 12.04, ви можете отримати більше фантазії. Наведене вище запустить ваш сценарій як root. У 12.04 ви можете додати setuid / setgid:
start on runlevel [2345]
stop on runlevel [016]
respawn
setuid nobody
setgid nogroup
exec python /path/to/your/python.py
Якщо ваш скрипт виходить, коли немає доступної мережі, і ви плануєте запустити його на нестабільному мережевому з'єднанні, ну, ви повинні виправити це і просто змусити його залишатися живим / повторити. Але якщо ви не можете, вам може знадобитися запускати його вручну, коли мережевий пристрій з’являється. Таким чином, ви можете розмістити це в /etc/network/if-up.d/yourscript
(зробити його виконуваним за допомогою chmod + x)
#!/bin/sh
exec start wait-for-state WAITER=$IFACE-yourscript WAIT_FOR=something
Якщо ваш сценарій - це щось довільне і унікальне для цього конкретного сценарію, а "щось" - це те саме, що назва роботи (наприклад, /etc/init/something.conf
запропонована раніше).