Cách đơn giản nhất để làm điều này là đặt cái này vào /etc/init/something.conf
:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec python /path/to/your/script.py
Sự hồi sinh sẽ khởi động nó trở lại nếu nó bị giết hoặc thoát ra khác không (giống như một ngoại lệ chưa được bắt). Điều này sẽ hoạt động trở lại Ubuntu 10.04.
Nếu bạn có 12.04 bạn có thể nhận được nhiều ưa thích hơn. Ở trên sẽ chạy tập lệnh của bạn là root. Trong 12.04, bạn có thể thêm setuid / setgid:
start on runlevel [2345]
stop on runlevel [016]
respawn
setuid nobody
setgid nogroup
exec python /path/to/your/python.py
Nếu tập lệnh của bạn thoát khi không có mạng và bạn dự định chạy nó trên kết nối mạng không ổn định, tốt, bạn nên sửa nó và chỉ làm cho nó tồn tại / thử lại. Nhưng nếu bạn không thể, bạn cũng có thể cần phải khởi động thủ công bất cứ khi nào thiết bị mạng xuất hiện. Vì vậy, bạn có thể đặt cái này vào /etc/network/if-up.d/yourscript
(làm cho nó thực thi được với chmod + x)
#!/bin/sh
exec start wait-for-state WAITER=$IFACE-yourscript WAIT_FOR=something
Trường hợp của bạn chỉ là một cái gì đó tùy ý và duy nhất cho tập lệnh cụ thể này và "cái gì đó" giống như tên công việc (chẳng hạn như /etc/init/something.conf
đề xuất trước đó).