Beenden Sie alle in die Warteschlange gestellten Jobs.

Beenden Sie alle in die Warteschlange gestellten Jobs.

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

verwandte Informationen