- Wie kann ich Crontab-Aufgaben sehen, die gerade ausgeführt werden?
- Wie kann ich Crontab-Aufgaben, die gerade ausgeführt werden, manuell stoppen ?
Ist [diese] Frage zu den aktuell ausgeführten Cron-Prozessen?
Ja
Um einen Prozess manuell abzubrechen, müssen Sie pkill verwenden
Ich hatte über pkill / killall nachgedacht, aber einige meiner Befehle in der crontab-Datei sind jeweils! es bedeutet, dass nach Beendigung eines Befehls der nächste gestartet wird! beispielsweise:
sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now
Also, wenn ich töte wget
, wird der Computer ausgeschaltet !!! -> Ich möchte einen Cron-Task vollständig töten, nicht einen Teil davon!
Das nächste pkill
Problem: Was ist mit Skripten? (Ich habe einige Bash-Skripte importiert crontab -e
) ->sudo pkill ???
Antworten:
Verwenden Sie in crontab nur einen Befehl pro Zeile. Ändern Sie diese Crontab-Linie:
so sieht es aus:
und erstelle
/path/to/my/crontab/script1.sh
mit diesem Inhalt:Vergessen Sie natürlich nicht, ihm die Ausführungserlaubnis zu geben:
Zweitens können Sie sehen, wie Crontab-Tasks in einem nützlichen und lesbaren Format ausgeführt werden, und zwar in der Ausgabe von:
Sie erscheinen in den ersten Zeilen in etwa so:
Die erste Spalte enthält die PID, die zweite die Sitzungs-ID und die dritte den von cron gestarteten Befehl. Sie können alle Prozesse, die mit einer bestimmten Cron-Aufgabe zusammenhängen, mithilfe der Sitzungs-ID beenden. Im obigen Beispiel sollten Sie daher die Sitzungs-ID 4289 beenden:
quelle
sh ps: cmd: keyword not found ps: illegal argument: afx
ps -o pid,sess,cmd -afx | egrep "( |/)cron( -f)?$"
Einen Prozess manuell abzubrechen ist eine Möglichkeit
pkill
. pkill stoppt alle Prozesse, deren Name das folgende Muster enthält. Um beispielsweise alle wget-Prozesse zu stoppen, verwenden Sie:quelle
sudo crontab -e
=>00 10 * * * /usr/bin/wget LINK ; shutdown -h now
=> Also, wenn ich wget töte , wird der Computer ausgeschaltet !!! -> Ich möchte einen Cron-Task vollständig töten, nicht einen Teil davon! das nächste pkill Problem: Was ist mit Skripten? (Ich habe einige Bash-Skripte importiertcrontab -e
) ->sudo pkill ???
Ändere deinen Cronjob so
Dies sollte funktionieren, da dies
&&
bedeutet, dass der zweite Befehl erst ausgeführt wird, wenn der erste korrekt beendet wurde (Status 0 an die Konsole / das System zurückgeben), was nicht der Fall sein sollte (weil der Prozess vom Benutzer und beendet wurde es sollte einen anderen Wert als 0) zurückgeben.quelle