Comment puis-je arrêter un travail cron en cours d'exécution?
Comment puis-je arrêter un travail cron en cours d'exécution?
Réponses:
Vous pouvez le faire de la même manière que vous arrêteriez n'importe quel processus.
Pour arrêter un crontravail en cours d'exécution , vous pouvez effectuer l'une des opérations suivantes:
pkill process-name
ou si vous connaissez le PID (vous pouvez le déterminer en exécutant ps):
kill 1234
(en remplaçant le PID réel)
pgrepou grepla sortie de ps. Il n'y a rien de spécial dans un processus exécuté depuis cron. Vous recherchez simplement le processus sous son propre nom. Vous pouvez également le faire ps fauxww | grep -A 1 '[C]RON'et les lignes situées en dessous de la ou des lignes montreront les travaux en cours d'exécution cron. Vous pouvez ajuster le nombre 1 plus haut pour voir les sous-processus éventuels.
ps fauxww | grep -A 1 '[C]RON'. Cette liste répertorie les tâches cron en cours d’exécution. Vous pouvez ensuite noter le PID et l’exécuter # kill -9 PID. Merci!
-9ne devrait être utilisé qu'en dernier recours, car il empêche le processus d'effectuer un nettoyage à sa sortie.
Pour arrêter l'exécution du travail cron, commencez par obtenir l'ID de processus de votre commande avec
top -p $(pgrep -d',' your_command)
par exemple:-
top -p $(pgrep -d',' httpd)
et courir
kill PIDremplacer PIDpar l'identifiant du processus
Étrange, personne n'a mentionné cette méthode:
$ crontab -e
Dans l'éditeur ouvert, supprimez la ligne de la tâche que vous souhaitez arrêter ou insérez un #signe, enregistrez et quittez
par exemple
avant
* * * * * some_script1
* * * * * some_script2
après
* * * * * some_script1
#* * * * * some_script2
ou
* * * * * some_script1
redémarrez le service après avoir effectué les modifications par
sudo service cron reload
Si vous utilisez Redhat (RHEL) / Fedora Core / Cent OS Linux, utilisez la commande suivante:
/etc/init.d/crond stop
Si vous utilisez Debian ou Ubuntu Linux, la commande suivante:
/etc/init.d/cron stop
PS: Vous devriez être root pour faire ces choses
Tapez d'abord ps auxpour voir ce que tous les processus sont en cours d'exécution.
Puis notez le PIDde chaque processus que vous souhaitez arrêter
Puis tapez
kill {PID} pour chaque processus.
Consultez également ces liens (liens superutilisateur):
Vous pouvez éditer la table cron et commenter la tâche en question. Basculez vers l'utilisateur qui contrôle la tâche, exportez l'éditeur de votre choix dans l'environnement, puis utilisez crontab -l:
$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l
crontab -epour l'éditer. Pour les systèmes qui en disposent, il est préférable d’utiliser sudoplutôt que de su. En outre, crontab -efonctionnerait pour la crontab utilisateur (ou racine), mais pas pour la crontab système (par exemple /etc/cron*).