Ich muss alle in der Warteschlange befindlichen und laufenden Jobs auf meiner ID beenden. Ich habe versucht
at -l | awk '{print $1}'| at -r {}
Aber ich bekomme immer
{} does not exist
Das lässt mich glauben, dass ich die Aussage falsch analysiere.
Antwort1
|
leitet die Ausgabe an die Standardeingabe des nächsten Befehls weiter, nicht an seine Befehlszeilenargumente.
Um alle in die Warteschlange gestellten Aufträge zu entfernen, führen Sie
at -l | awk '{print $1}'| xargs at -r
Alternativ können Sie
at -r $( at -l | awk '{print $1}' )
$( ... )
wird durch die Ausgabe der darin enthaltenen Befehle ersetzt.
Siehe auchdiese verwandte Frage.
Bitte beachten Sie, dass hierdurch nur die Jobs aus atq entfernt werden, laufende Jobs jedoch nicht beendet werden.
Wenn die Befehlszeile des Prozesses mit einem MUSTER übereinstimmt und keine anderen ähnlichen Prozesse unter Ihrem Benutzernamen ausgeführt werden, können Sie sie mit beenden
pgrep -u $USER PATTERN