Cara paling sederhana untuk melakukan ini adalah menempatkan ini di /etc/init/something.conf
:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec python /path/to/your/script.py
Respawn akan memulai kembali jika terbunuh atau keluar tidak nol (seperti pengecualian yang tidak tertangkap). Ini akan bekerja kembali ke Ubuntu 10,04.
Jika Anda memiliki 12,04 Anda bisa mendapatkan lebih banyak. Di atas akan menjalankan skrip Anda sebagai root. Dalam 12,04 Anda dapat menambahkan setuid / setgid:
start on runlevel [2345]
stop on runlevel [016]
respawn
setuid nobody
setgid nogroup
exec python /path/to/your/python.py
Jika skrip Anda keluar ketika tidak ada jaringan yang tersedia dan Anda berencana untuk menjalankannya pada koneksi jaringan yang tidak stabil, Anda harus memperbaikinya dan membuatnya tetap hidup / coba lagi. Tetapi jika Anda tidak bisa, Anda mungkin perlu menjalankannya secara manual setiap kali perangkat jaringan muncul. Jadi Anda dapat menempatkan ini di /etc/network/if-up.d/yourscript
(membuatnya dapat dieksekusi dengan chmod + x)
#!/bin/sh
exec start wait-for-state WAITER=$IFACE-yourscript WAIT_FOR=something
Di mana skrip Anda adalah sesuatu yang sewenang-wenang dan unik untuk skrip khusus ini, dan "sesuatu" sama dengan nama pekerjaan (seperti yang /etc/init/something.conf
disarankan sebelumnya).