A maneira mais simples de fazer isso é colocar isso em /etc/init/something.conf
:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec python /path/to/your/script.py
O Respawn iniciará o backup se for eliminado ou sair de zero (como uma exceção não identificada). Isso funcionará no Ubuntu 10.04.
Se você tem 12.04 você pode ficar mais chique. O acima irá executar o seu script como root. Em 12.04 você pode adicionar setuid / setgid:
start on runlevel [2345]
stop on runlevel [016]
respawn
setuid nobody
setgid nogroup
exec python /path/to/your/python.py
Se o seu script sair quando não houver rede disponível e você planeja executá-lo em uma conexão de rede instável, bem, você deve corrigir isso e apenas mantê-lo ativo / tente novamente. Mas se você não puder, talvez seja necessário iniciá-lo manualmente sempre que um dispositivo de rede for ativado. Então você pode colocar isso em /etc/network/if-up.d/yourscript
(torná-lo executável com chmod + x)
#!/bin/sh
exec start wait-for-state WAITER=$IFACE-yourscript WAIT_FOR=something
Onde o seu título é apenas algo arbitrário e exclusivo para este script específico, e "algo" é o mesmo que o nome do trabalho (como o /etc/init/something.conf
sugerido anteriormente).