題 什麼是“最後一個暫停進程的PID”的Unix命令行符號?


在交互式控制台中 irb,有時會出現問題,控制台變得反應遲鈍。一種解決方案是暫停該過程,然後將其殺死。

暫停這個過程,我可以按 Control+Z。為了殺死這個過程,我可以跑了 ps -ef | grep 'irb' 列出所有進程並僅顯示包含'irb'的進程,然後從該列表中獲取進程ID並鍵入 kill [insert PID here]

那是一件麻煩事。我知道有一種方法可以暫停該過程,然後鍵入 kill [some symbol here],符號表示“暫停的最後一個進程”。

“最後一個暫停過程的PID”的命令行符號是什麼?


4
2017-10-04 13:06


起源




答案:


你可能正在尋找 $! 變量 (bash手冊,部分 特殊參數)。

但是,您不需要PID - 內置 kill 命令也接受 工作標識符, 如 %2,按Ctrl-Z或鍵入時顯示 jobs。您可以使用 %%+ 要么 %% 參考最新的工作。 (其他可能性在bash手冊中,部分 工作控制。)

>>>
[4]+  Stopped                 python
$ kill %4

14
2017-10-04 13:53



我認為 kill % 是我在尋找的。雖然我認為這實際上是最後的工作 開始 而不是最後一個 暫停對我來說,這通常是同一個。 - Nathan Long
@NathanLong:不, % 是最後一個 暫停 工作。 - grawity
太棒了,謝謝你的澄清。 :) - Nathan Long
stackoverflow.com/questions/1908610/... - Brian Haak


jobs -p %

它顯示上次暫停作業的PID(按下後) Ctrl+z)。


1
2017-08-04 00:46