Command-Line

如何終止後台程序?

  • March 19, 2021

我已經在後台使用&. 突然停止下載。我想終止它的程序,然後重新執行命令。我怎樣才能終止它?

我還沒有關閉它的外殼視窗。但如您所知,它不會停止使用Ctrl+CCtrl+ Z

有很多方法可以解決這個問題。

方法 #1 - ps

您可以使用該ps命令找到該程序的程序 ID,然後使用 PID 殺死該程序。

例子

$ ps -eaf | grep [w]get 
saml      1713  1709  0 Dec10 pts/0    00:00:00 wget ...

$ kill 1713

方法 #2 - pgrep

您還可以使用 查找程序 ID pgrep

例子

$ pgrep wget
1234

$ kill 1234

方法 #3 - pkill

如果您確定它是wget您唯一執行過的,您可以使用該命令pkill按名稱終止作業。

例子

$ pkill wget

方法#4 - 工作

如果您在執行現在後台作業的同一 shell 中。您可以使用該jobs命令檢查它是否仍在執行,也可以通過其作業編號將其殺死。

例子

我的假工作,sleep

$ sleep 100 &
[1] 4542

找到它的工號。**注意:**數字 4542 是程序 ID。

$ jobs
[1]+  Running                 sleep 100 &

$ kill %1
[1]+  Terminated              sleep 100

方法 #5 - fg

fg您可以使用該命令將後台作業帶回前台。

例子

假工作,sleep

$ sleep 100 &
[1] 4650

獲取工作編號。

$ jobs
[1]+  Running                 sleep 100 &

將工作 #1 帶回前台,然後使用Ctrl+ C

$ fg 1
sleep 100
^C
$

引用自:https://unix.stackexchange.com/questions/104821