Comment arrêter un travail cron en cours?

45

Comment puis-je arrêter un travail cron en cours d'exécution?

ne pas penser
la source
2
Les trois réponses ci-dessous interprètent cette question de trois manières. @GURU, pourriez-vous préciser ce que vous aimeriez faire? Souhaitez-vous arrêter un processus lancé par cron qui est en cours d'exécution ou souhaitez-vous empêcher le travail de s'exécuter ultérieurement?
jcrawfordor

Réponses:

29

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)

En pause jusqu'à nouvel ordre.
la source
1
Comment lister les tâches cron en cours?
UWU_SANDUN
5
@UWU_SANDUN: Vous pouvez utiliser 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.
pause jusqu'à nouvel ordre.
Notez que vous devez exécuter cygwin en tant qu'administrateur pour tuer les processus. Voir ici pour plus d'informations à ce sujet.
takanuva15
En utilisant Ubuntu je dactylographiée ce que @ takanuva15 suggéré, 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!
russellhoff
@russellhoff: -9ne devrait être utilisé qu'en dernier recours, car il empêche le processus d'effectuer un nettoyage à sa sortie.
pause jusqu'à nouvel ordre.
17

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

Miqdad Ali
la source
15

É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
laike9m
la source
17
Cela n'arrête pas un travail cron en cours d'exécution, il arrête les futurs travaux cron qui seront lancés par cron.
Ivan
10

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

Sen
la source
2
Je pense que cela stoppe tous les crons. Pour arrêter certains cron, puis-je connaître la commande
pouvez-vous suggérer n'importe quelle commande sen
Je ne pense pas que ce soit possible de manière directe. Peut-être devrions-nous nous lancer dans un bidouillage.
Sen
3

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
mf
la source
1
Cela énumère la crontab. Utilisez 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*).
pause jusqu'à nouvel ordre.
1

crontab -r

supprimerait toutes les crontabs en cours d’exécution ou vous pouvez simplement commenter les commandes de la crontab à arrêter.

Croissant
la source
0

Tout d’abord, vérifiez le processus de travail avec cette commande.

ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"

La sortie de cette commande est

599  599 cron
4288  599 \_ CRON

et maintenant tuer le processus avec cette commande

pkill -s 4288
aemre
la source
0

Travailler pour moi pour Linux

pkill -9 crontab

Tue tous les processus ayant le nom de processus crontab

Sayka
la source