Linux中終止一個正在運行運行的進程最常用的是kill命令,它是用進程PID作為參數(shù)來殺死進程。那如何獲得指定進程的PID呢?用pidof命令啊。比如獲取syslogd進程PID的命令是:pidof syslogd。知道了進程PID,就可以用kill命令終止它了:
創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為衢江企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都網(wǎng)站建設,衢江網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
kill -9 PID號碼
或者kill -2 PID號碼
-9參數(shù)是強制結束進程,而-2參數(shù)是相當于用鍵盤組合鍵Ctrl+C的方式正常結束進程,兩種方式可以根據(jù)進程的運行情況來用。
終止進程還可以選擇killall命令,顧名思義就是殺死所有以某個命令啟動的所有進程(以殺死httpd命令啟動的所有進程為例):
killall -9 httpd
在linux系統(tǒng)中停止進程需要以下三個步驟,下面具體介紹以下:
1、打開進程id,用ps命令查找進程,使用-e?選項。通過less的方式輸出
2、找到進程,通過grep將ps的輸出通過管道傳輸,并指定該進程的名稱。
3、找到要終止的進程,然后通過kill命令來停止進程。
今天的分享就是這些,希望能幫助大家。
本文章基于thinkpadE15品牌、centos7系統(tǒng)撰寫的。
1、信號:傳遞給 Liunx 的事件發(fā)生通知機制。
2、kill -l:顯示所有信號。一共有62個信號(沒有32、33)。
3、常用的信號有:
kill -2 PID —— 正常中斷進程(Ctrl + C 一樣)。程序在結束之前,能夠保存相關數(shù)據(jù),然后再退出。
kill -9 PID —— 強制殺死一個進程。
kill -15 PID —— 正常方式終止一個程序。中斷進程時應首先用 -15,以便于其能夠預先清理臨時文件和釋放資源。-9?作為最后手段,應對那些失控的進程。
--------------------------------------------------------------------------------
1)、kill -2 中斷后臺運行的進程。
紅色下劃線:sleep 10000 —— 后臺運行延時 10000 秒的命令,進程 ID 為1516。
ps -j —— 以作業(yè)格式列出進程信息,可以看到 1516 sleep 命令的進程。
(PID:進程 ID、PGID:線程組 ID、SID:會話 ID、TTY:進程運行的終端,標識那個終端控制。(pts遠程終端、tty系統(tǒng)終端)、TIME:進程運行的時間 和 CMD:命令的名稱和參數(shù))。
jobs -l —— 列出后臺運行的命令,可以看到 1516 sleep 命令正在后臺運行。
黃色下劃線:kill -2 1516 —— 中斷1516 進程。執(zhí)行成功后,按 Enter 回車系統(tǒng)會給出提示Interrupt 提示(中斷進程)。
藍色方框:ps -j 已查詢不到?1516 sleep 的進程。jobs -l 也沒有后臺運行的命令。
2)、kill -2 配合 fg 查看中斷掛起的進程。
紅色下劃線:前臺執(zhí)行 sleep 10000 (延時10000秒)后 ctrl + z 掛起。
黃色下劃線:ps -j 查看進程,可以看到 1344 sleep 進程。jobs -l 查看后臺進程 1344 的狀態(tài)是stopped 暫停狀態(tài)。
藍色下劃線:kill -2 1344 中斷 1344 進程。
綠色下劃線:ps -j 查看進程,仍有 1344 sleep 進程。jobs -l 查看后臺進程 1344 的狀態(tài)是stopped 暫停狀態(tài)。
暫時這樣看,好像 kill -2 并沒有起到中斷進程的作用。
然而,用 fg 把后臺的命令調至前臺運行時可以發(fā)現(xiàn) 1344 sleep 已經(jīng)被中斷。
紅色下劃線:fg 把已經(jīng)執(zhí)行了 kill -2, 狀態(tài)為 stopped 的1344 sleep命令調至前臺執(zhí)行。系統(tǒng)也反饋已經(jīng)調至前臺執(zhí)行。(此時,實際上已經(jīng)執(zhí)行了 kill -2 中斷了進程)
黃色方框:ps -j 已經(jīng)沒有了 1344 sleep 的進程。
藍色方框:jobs -l 后臺也沒有指令。
3)、kill -2 配合 bg 查看中斷掛起的進程。
通過上面的思路,kill -2 配合 bg 實驗看看效果。同樣的首先掛起一個命令,狀態(tài)為 stopped 暫停。然后用 bg 命令恢復執(zhí)行。
前面的步驟都是一樣,掛起一個命令。通過 ps 和 jobs 查看進程和后臺確認有 1379 的進程,狀態(tài)為 stopped 暫停。然后執(zhí)行 kill-2 中斷進程,再次通過ps 和 jobs 查看進程和后臺命令。確認狀態(tài)為 stopped? 1379 的進程仍然存在。
此時,用 bg 恢復運行掛起的命令,系統(tǒng)提示 sleep 命令已恢復在后臺運行。然而通過 ps -j 查看進程會發(fā)現(xiàn) sleep 已經(jīng)被中斷。jobs -l 查看后臺也沒有了運行的 sleep 命令了。
從實驗上看:
1、后臺命令運行時(Running),執(zhí)行 kill -2 可以中斷進程。
2、掛起命令,處于暫停狀態(tài)時(Stopped),執(zhí)行 kill -2 后通過 ps 還可以查詢到進程, jobs還可以查詢到后臺命令,狀態(tài)仍然是 Stopped 暫停狀態(tài)。實際上,用 fg 把暫停的后臺進程調至前臺運行時,系統(tǒng)反饋 sleep 命令調至前臺運行。而再用 ps 查詢不到進程,已經(jīng)中斷了進程。用 jobs 已經(jīng)查詢不到后臺命令。
3、掛起命令,處于暫停狀態(tài)時(Stopped),執(zhí)行 kill -2 后通過 ps 還可以查詢到進程, jobs還可以查詢到后臺命令,狀態(tài)仍然是?Stopped 暫停狀態(tài)。用 bg 把暫停的后臺命令恢復運行時,系統(tǒng)反饋 sleep 命令在后臺運行。再用 ps 查詢進程已經(jīng)中斷,用 jobs 已經(jīng)查詢不到后臺命令。
Linux下強制中斷一個程序的執(zhí)行,利用按鍵,而不是kill命令。
可嘗試以下方法:
1.CTRL + c??中斷。
2.CTRL + z??暫停放到后臺。
3.CTRL + d??保存退出。
如上述方法不能解決問題可嘗試:
進入相關網(wǎng)站詢問客服人員。
尋找線下維修人員,進行詢問。
尋找專業(yè)人員,尋求幫助。
尋找相關書籍,進行知識解答。
linux終止在第六個進程:(1),通過ps命令來定位進程。
ps 命令顯示與 top 類似的信息,但它不會以接口的形式顯示。相反,ps 命令提供了正在運行的進程的完整列表,并根據(jù)選項來進行格式化。
[root@sharplee ~]# ps -aux
?
(2),發(fā)現(xiàn)進程id通過pgrep或者pidof命令
Linux命令 pgrep 是查找進程的一種更復雜的方法。此命令將返回基于特定選擇條件(稱為模式)的進程。該模式是一個正則表達式,例如 a*,其中 * 將是通配符。例如查找docker進程。
Linux查詢進程和結束進程
1.? ps -ef |grep redis
ps:將某個進程顯示出來
-A 顯示所有程序。
-e 此參數(shù)的效果和指定"A"參數(shù)相同。
-f 顯示UID,PPIP,C與STIME欄位。
grep命令是查找
中間的|是管道命令 是指ps命令與grep同時執(zhí)行
這條命令的意思是顯示有關redis有關的進程
2. ? kill[參數(shù)][進程號]
kill -9 4394
kill就是給某個進程id發(fā)送了一個信號。默認發(fā)送的信號是SIGTERM,而kill -9發(fā)送的信號是SIGKILL,即exit。exit信號不會被系統(tǒng)阻塞,所以kill -9能順利殺掉進程。當然你也可以使用kill發(fā)送其他信號給進程。 更具體的Linux命令介紹可如下進行查看: