Che ne dici di usare cron? Imposta un piccolo cron job che viene eseguito ogni minuto. Controlla se la tua applicazione è attiva (usando ps) e, in caso contrario, riavviala.
Crea un piccolo script come questo:
#!/bin/bash
if [ ! "$(pidof myapp)" ]
then
/path/to/myapp &
fi
Verifica se "myapp" è nell'elenco dei processi. "!" inverte la prova. Se non c'è, esegue "myapp". "&" è solo così inizia in background.
Aggiungi questo a cron. A seconda del sistema e delle preferenze, ci sono diversi modi per farlo. Quello classico è usare crontab. C'è molta documentazione su come specificare la riga crontab, ma probabilmente vorrai qualcosa del genere:
* * * * * /path/to/the/script.sh > /dev/null
Questo eseguirà il tuo test ogni minuto di ogni ora di ogni... Hai capito.
Usa /etc/inittab
puoi utilizzarlo per avviarti nei livelli di esecuzione specifici e se viene ucciso verrà riavviato automaticamente
n:2345:respawn:/path/to/app
Questo lo farà rigenerare nei livelli di esecuzione 2345, probabilmente ti serviranno solo 3 e 5, ma funzionerà bene ed è integrato in Linux.
La maggior parte di Unix/Linux init
i programmi gestiranno i demoni per te e li riavvieranno. Cerca di inserire il tuo servizio in /etc/inittab
. Oppure potresti usare Upstart
o systemd
.
Tutti questi programmi vengono eseguiti come PID 1
ed è loro compito monitorare e riavviare i processi di sistema.
Dal tuo tag Busybox presumo che tu stia eseguendo un sistema integrato. Su questi, gli script di init in stile System V con tutti i loro script di shell sono davvero eccessivi. Probabilmente dovresti eliminare tutto questo e sostituirlo con voci in /etc/inittab
o lavori upstart o systemd.
Il watchdog del software Linux riavvierà la macchina, non solo riavvierà il tuo processo.
Bene, questo semplicemente non è vero, è molto possibile riavviare uno o più processi dopo che il watchdog ha segnalato che i sistemi sono in sospeso - puoi persino ANNULLARE il riavvio o eseguire un riavvio SOFT, uno è in grado di configurare "test" e " repair"-script/binari che fanno quello che vuoi che facciano. La versione busybox di watchdog è ridotta a un livello quasi inutilizzabile ... immagino che il mondo non saprà mai perché gli sviluppatori di busybox hanno deciso di abbandonare le funzionalità primarie - per ora, sarebbe meglio evitare del tutto busybox --> i miglioramenti della velocità sono quasi inesistenti, la riduzione delle dimensioni non compensa l'enorme perdita di funzionalità. /bin/bash è piuttosto piccolo - ricompila tutto con il flag "-Os" se le dimensioni contano e sei a posto - un watchdog pronto all'uso che consente praticamente tutto ciò che si può desiderare.
Oh, e PER FAVORE NON creare il tuo cane da guardia:molto probabilmente ti lascerà con errori non gestiti e un giorno ti renderà la vita difficile.