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 cron
travail 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)
pgrep
ou grep
la 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!
-9
ne 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 PID
remplacer PID
par 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 aux
pour voir ce que tous les processus sont en cours d'exécution.
Puis notez le PID
de 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 -e
pour l'éditer. Pour les systèmes qui en disposent, il est préférable d’utiliser sudo
plutôt que de su
. En outre, crontab -e
fonctionnerait pour la crontab utilisateur (ou racine), mais pas pour la crontab système (par exemple /etc/cron*
).