我有簡單的bash腳本:如何用不同的執行時間殺死幾個進程?
(睡眠5;回聲 'A';睡眠100)&
(睡眠7;回波 'B';睡眠100)&
我想在第二次印刷'B'和第一次印刷'A'之後殺掉這兩個過程。 (可能不是回聲 - 第一次睡覺後可能是其他標籤。)如何操作?
我有簡單的bash腳本:如何用不同的執行時間殺死幾個進程?
(睡眠5;回聲 'A';睡眠100)&
(睡眠7;回波 'B';睡眠100)&
我想在第二次印刷'B'和第一次印刷'A'之後殺掉這兩個過程。 (可能不是回聲 - 第一次睡覺後可能是其他標籤。)如何操作?
可能是這樣
(sleep 5; echo 'A'; sleep 100) &
export Last=$!
(sleep 7; echo 'B'; kill-9 $Last; sleep 100) &
試試這個:
jobs -p | xargs kill
jobs -p
打印出所有後臺作業的進程ID從這個shell窗口。
xargs
將它在stdin
上讀取的內容傳遞給您提供的程序。
kill
將SIGTERM
發送給您提供的每個進程ID。
但是,請注意,這將殺死從此shell啓動的所有後臺作業,而不僅僅是最後兩個作業。
如果你知道你想殺死只是最近啓動的X作業,使用此:
jobs -p | tail -n [number of jobs] | xargs kill
你能不能解釋一下?我不明白你想達到什麼目的。 – Renaud 2011-03-23 18:16:50