J'ai un travail qui court pour toujours au moment où il commence. Je veux donc le démarrer une seule fois après l'avoir entré dans le fichier "crontab -e" et l'avoir enregistré (ou) à chaque redémarrage.
Comment y parvenir?
J'ai un travail qui court pour toujours au moment où il commence. Je veux donc le démarrer une seule fois après l'avoir entré dans le fichier "crontab -e" et l'avoir enregistré (ou) à chaque redémarrage.
Comment y parvenir?
Réponses:
Si vous souhaitez exécuter une commande une fois à une date ultérieure, utilisez la at
commande.
Si vous souhaitez qu'une commande soit exécutée une seule fois au démarrage du système, la solution correcte consiste à utiliser soit:
@reboot
préfixe spécial (voir la page de manuel)Ce dernier est la seule option pour un utilisateur non root.
at now
@reboot
.
Vous pouvez utiliser at (1) pour exécuter un travail à un moment donné dans le futur. Cependant, si vous voulez exécuter quelque chose au démarrage et qu'il continuera de fonctionner seul, peut-être voulez-vous une entrée dans /etc/init.d/ pour cela? Cela vous permettrait de le démarrer au démarrage.
kill
(en supposant que vous avez les autorisations pour le faire, ce que vous faites pour vos propres processus). Faire un script d'init est vraiment facile. Cherchez /etc/init.d/
un script qui n'est pas très long et modélisez le vôtre ou google making init scripts (your distribution)
.
/etc/init.d/skeleton
sur openSuSE) que vous pouvez adapter à votre usage.
Un travail qui ne s'exécute qu'une seule fois et s'exécute indéfiniment jusqu'à ce que vous lui disiez de mourir est appelé "démon". Ils sont normalement démarrés via des scripts d'initialisation dans /etc/init.d/.
Si votre travail se termine à un moment donné et peut être considéré comme un type de travail ponctuel, vous pouvez alors consulter la commande at. Par exemple, si je voulais exécuter la commande find à 22 heures ce soir et seulement une fois, je ferais:
$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
Jetez un œil à la commande at