殺死所有排隊的作業

殺死所有排隊的作業

我需要終止我的 ID 上所有排隊和正在運行的作業。我努力了

   at -l | awk '{print $1}'| at -r {}

但我不斷得到

   {} does not exist

這讓我相信我錯誤地解析了該語句。

答案1

|將輸出透過管道傳輸到下一個命令的標準輸入,而不是其命令列參數。

若要刪除所有排隊的作業,請執行

at -l | awk '{print $1}'| xargs at -r

或者,您可以使用

at -r  $( at -l | awk '{print $1}' )

$( ... )被它所包含的命令的輸出取代。

也可以看看這個相關問題

請注意,這只是從 atq 中刪除作業,但不會終止正在執行的作業。

如果進程命令列與模式匹配並且沒有其他類似的進程在您的用戶名上運行,您可以使用以下命令殺死它們

pgrep -u $USER PATTERN

相關內容