如何殺死這是在bash運行的進程 - 比如,假設我打開一個文件:殺死在bash的過程
$ gedit中file.txt的
有什麼辦法在命令提示符下關閉它?這個例子相當簡單,因爲我可以關閉窗口,但它似乎有點過時,特別是當我輸錯命令時。
還有什麼辦法來逃避正在運行的可執行文件?這可能有相同的解決方案,但我想我會問。
感謝
如何殺死這是在bash運行的進程 - 比如,假設我打開一個文件:殺死在bash的過程
$ gedit中file.txt的
有什麼辦法在命令提示符下關閉它?這個例子相當簡單,因爲我可以關閉窗口,但它似乎有點過時,特別是當我輸錯命令時。
還有什麼辦法來逃避正在運行的可執行文件?這可能有相同的解決方案,但我想我會問。
感謝
要中斷它,您可以嘗試按ctrlc發送SIGINT。如果它不能阻止它,你可以嘗試使用kill -9 <pid>
殺死它,它發送一個SIGKILL。後者不能被進程本身(被殺的那個)忽略/攔截。
要將活動進程移動到後臺,您可以按ctrlz。該過程被髮送到後臺,並返回到shell提示符。使用fg
命令做相反的操作。
你有多種選擇:
首先,你可以使用kill。但是,您需要使用ps,pidof或pgrep可以獲得的流程的PID。
ps -A // to get the pid, can be combined with grep
-or-
pidof <name>
-or-
pgrep <name>
kill <pid>
只知道名字就可以殺死一個進程。使用pkill或killall。
pkill <name>
-or-
killall <name>
所有命令都向該進程發送信號。如果這個過程就掛了,這可能是neccessary到sigkill發送給該進程(這是信號數字9,所以下面的例子做同樣的):
pkill -9 <name>
pkill -SIGKILL <name>
您可以使用此選項kill
和killall
,太。
閱讀關於controlling processes的文章,以獲取有關過程的更多信息。
您可以使用命令pkill來終止進程。如果你想「玩耍」,你可以使用「pgrep」,它的作用完全相同,但返回的過程而不是殺死它。
pkill具有-f參數,可以讓您匹配整個命令。因此,對於你來說,您可以:pkill的-f「的gedit file.txt的」
嘗試kill -9 {processID}
要查找進程ID,您可以使用ps -ef | grep gedit
這對正常進程來說有點苛刻,你最好只在對'正常'kill請求沒有反應的東西上使用它。 – 2010-05-05 16:27:41
也考慮使用pgrep而不是grepping ps - 特別是在編寫腳本時 – 2010-05-05 16:45:24
您的意思是,我不清楚「轉義正在運行的可執行文件」,但ctrl-z會將進程置於後臺並將控制權返回給命令行。然後您可以使用fg命令將程序帶回前臺。
舊帖子,但我碰到了一個非常類似的問題。一些試驗後,我發現,你可以用一個命令做到這一點:
kill $(ps aux | grep <process_name> | grep -v "grep" | cut -d " " -f2)
在OP的情況下,<process_name>
會"gedit file.txt"
。
雖然看起來不錯,但不起作用。但是這個工作:ps -ef | grep yourproc | awk'{print $ 2}'| xargs kill – Timo 2015-03-08 19:19:19
分離器不好。你應該先調整它。這應該工作:kill -9 $(ps aux | grep「worker-manager-rsync」| grep -v「grep」| tr -s「」| cut -d「」-f 2) – ikken 2017-06-22 15:30:01
works!我只更改最後一位數字 kill $(ps aux | grep
請檢查「頂」命令,然後如果你的腳本或任何正在運行,請注意「PID」
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1384 root 20 0 514m 32m 2188 S 0.3 5.4 55:09.88 example
14490 root 20 0 15140 1216 920 R 0.3 0.2 0:00.02 example2
kill <you process ID>
Example : kill 1384
這一個是謹慎的暴力使用:
pkill -9 -e -f processname
如果你的進程名是「sh」它也會殺死「bash」
這看起來更像是一個shell使用問題,而不是shell編程問題 - 最佳實踐在腳本和交互式用法之間是不同的,後者屬於超級用戶ra而不是SO。 – 2010-05-05 16:46:27
我不明白這應該是如何重複鏈接的問題。這個問題詢問關於殺死在當前終端運行的進程。 「重複」問題詢問如何查找某個任意進程進程的進程ID以進行查殺。 – luator 2017-02-07 14:34:19