如何將進程發送到後台和前台?

如何將進程發送到後台和前台?

如果這樣做ping google.com &,該過程將進入背景並不斷向我顯示 ping 詳細資訊。我仍然可以將終端與其他命令一起使用,但 ping 的輸出和其他命令的輸出會混淆(這不是問題),但我根本無法終止此 ping 進程。

為此,我想將其帶到前台,然後按 ctrl + c 或其他鍵。我嘗試使用fg,但它也不起作用。那麼,ping google.com &在 ping 指令結束時按下回車鍵後,如何才能回到前台呢?

答案1

fg是前台作業的正確命令,但如果有多個作業正在運行,您應該指定作業號。如果您僅鍵入fg,則最後一個背景作業(被 shell 視為目前作業)將被帶到前台。

取得目前職位:

$ jobs
[1]+     ping google.com &

透過指定編號將作業置於前台:

fg %1

該命令可能會被正在運行的進程的輸出打斷,但它仍然會工作,您可以忽略中斷。

然後按ctrl+c中斷並停止該過程

正如評論中提到的,您還可以透過工作編號發送信號,例如kill %1

&為了完整起見,如果您在呼叫該進程時沒有使用,則可以透過先用ctrl+凍結z然後鍵入將其傳送到後台bg

相關內容