Ho un lavoro che dura per sempre nel momento in cui inizia. Quindi voglio avviarlo solo una volta dopo averlo inserito nel file "crontab -e" e averlo salvato (o) ogni volta che si verifica il riavvio.
Come raggiungere questo obiettivo?
Ho un lavoro che dura per sempre nel momento in cui inizia. Quindi voglio avviarlo solo una volta dopo averlo inserito nel file "crontab -e" e averlo salvato (o) ogni volta che si verifica il riavvio.
Come raggiungere questo obiettivo?
Risposte:
Se si desidera eseguire un comando una volta in un secondo momento, utilizzare il at
comando.
Se si desidera eseguire un comando una volta all'avvio del sistema, la soluzione corretta è utilizzare:
@reboot
prefisso speciale (vedi manpage)Quest'ultima è l'unica opzione per un utente non root.
at now
@reboot
.
È possibile utilizzare in (1) per eseguire un lavoro in futuro. Tuttavia, se vuoi eseguire qualcosa all'avvio e rimarrà in esecuzione da solo, forse vuoi una voce in /etc/init.d/ per questo? Ciò ti consentirebbe di avviarlo all'avvio.
kill
(presupponendo che si disponga delle autorizzazioni per farlo, cosa che si fa per i propri processi). Realizzare uno script di init è davvero facile. Cerca /etc/init.d/
uno script che non sia molto lungo e modella il tuo dopo di esso, o cerca Google making init scripts (your distribution)
.
/etc/init.d/skeleton
su openSuSE) che puoi adattare per il tuo uso.
Un lavoro che viene eseguito una sola volta e viene eseguito per sempre fino a quando non gli dici di morire viene chiamato "demone". Normalmente vengono avviati tramite script di script in /etc/init.d/.
Se il tuo lavoro termina ad un certo punto e può essere considerato un tipo unico di lavoro, allora potresti voler guardare il comando at. Ad esempio, se volessi eseguire il comando find alle 22:00 di stasera e solo questa volta avrei fatto:
$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
Dai un'occhiata al comando at