- Comment voir les tâches crontab en cours?
- Comment puis-je arrêter manuellement les tâches crontab en cours?
Est-ce [cette] question de voir les processus cron en cours d'exécution?
Oui
Pour tuer un processus manuellement, une façon consiste à utiliser pkill
J'avais pensé à pkill / killall, mais certaines de mes commandes dans le fichier crontab le sont respectivement! cela signifie qu'après avoir terminé une commande, la suivante sera démarrée! par exemple:
sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now
Donc, si je tue wget
, l'ordinateur sera éteint !!! -> Je veux tuer une tâche cron complètement, pas une partie!
Le pkill
problème suivant : qu'en est-il des scripts? (J'ai importé des scripts bash dans crontab -e
) ->sudo pkill ???
Réponses:
Premièrement, utilisez une seule commande par ligne dans crontab. Modifiez cette ligne crontab:
il ressemble donc à:
et créez
/path/to/my/crontab/script1.sh
avec ce contenu:Bien sûr, n'oubliez pas de lui donner la permission d'exécution:
Deuxièmement, vous pouvez voir l'exécution des tâches crontab, dans un format utile et lisible, dans la sortie de:
Ils apparaîtront dans les premières lignes, quelque chose comme ceci:
La première colonne est PID, la deuxième est l'ID de session et la troisième est la commande démarrée par cron. Vous pouvez tuer tous les processus liés à une tâche cron spécifique en utilisant l'ID de session, donc dans l'exemple ci-dessus, vous devez tuer l'ID de session 4289:
la source
sh ps: cmd: keyword not found ps: illegal argument: afx
ps -o pid,sess,cmd -afx | egrep "( |/)cron( -f)?$"
Pour tuer un processus manuellement, une façon consiste à utiliser
pkill
. pkill arrêtera tous les processus qui ont le modèle suivant dans son nom. Par exemple, pour arrêter tous les processus wget, utilisez:la source
sudo crontab -e
=>00 10 * * * /usr/bin/wget LINK ; shutdown -h now
=> Donc, si je tue wget , l'ordinateur sera éteint !!! -> Je veux tuer une tâche cron complètement, pas une partie! le prochain problème de pkill: qu'en est-il des scripts? (J'ai importé des scripts bash danscrontab -e
) ->sudo pkill ???
changez votre cronjob comme ça
Cela devrait fonctionner, car
&&
cela signifie que la deuxième commande n'est exécutée que lorsque la première s'est terminée correctement (retour de l'état 0 à la console / au système), ce qui ne devrait pas être le cas (car le processus a été tué par l'utilisateur et il doit retourner une autre valeur puis 0).la source