kill 命令通常用于終止執(zhí)行中的程序。 kill可將指定的信息送至程序。默認(rèn)送的信息為SIGTERM (信息編號(hào)為15),代表關(guān)閉進(jìn)程
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為安龍等服務(wù)建站,安龍等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為安龍企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
kill -9 pid kill -15 pid (效果等同于 kill pid )
其中 9 和 15 指的是信息編號(hào)
什么是信息編號(hào)
使用kill -l 命令可以查看信息及編號(hào)
信息編號(hào)代指不同的信息,不同的信息有不同的含義
可以看到 9代表 SIGKILL,15 代表 SIGTERM 所以 ==kill -9 pid 代表 發(fā)送SIGKILL信息給這個(gè)pid的程序 kill -15 pid 代表 發(fā)送SIGTERM信息給這個(gè)pid的程序==
那么 SIGTERM(15)和 SIGKILL(9)有什么區(qū)別
SIGTERM :當(dāng)進(jìn)程接收到SIGTERM后,大多會(huì)先釋放自己的資源,再停止進(jìn)程,屬于正常關(guān)閉進(jìn)程,但是如果進(jìn)程正在工作,處理io等,不會(huì)立馬關(guān)閉,或者 進(jìn)程卡死的情況,都會(huì)導(dǎo)致SIGTERM不起作用。
SIGKILL : SIGKILL信號(hào)要求進(jìn)程 立即關(guān)閉,強(qiáng)制關(guān)閉進(jìn)程。
工作中關(guān)閉進(jìn)程時(shí),==先kill pid(默認(rèn)使用編號(hào)15),如果不起作用 再使用 kill -9 pid。==
查看nginx的pid: ps -ef | grep nginx
可以看到nginx的主進(jìn)程編號(hào) 是 7901
正常關(guān)閉 nginx的主進(jìn)程
kill -15 7901 或者 kill 7901 再次查看nginx的進(jìn)程 發(fā)現(xiàn)已經(jīng)關(guān)閉
啟動(dòng)nginx,查看進(jìn)程號(hào),再?gòu)?qiáng)制關(guān)閉 nginx
nginx?
ps -ef | grep nginx? ??
kill -9 9827? ??
ps -ef | grep nginx?
可以看到 kill -9 只是強(qiáng)制關(guān)閉了 nginx的主進(jìn)程,由于不是正常關(guān)閉,worker進(jìn)程并沒有被關(guān)閉,這就是強(qiáng)制關(guān)閉的弊端,再次關(guān)閉worker進(jìn)程 kill -9 9828
1、kill 命令默認(rèn)使用的信息編號(hào)及信息是什么?
:15,代表正常關(guān)閉進(jìn)程
2、kill -9 pid 中 信息編號(hào)9代表什么信息?
:強(qiáng)制關(guān)閉進(jìn)程
3、如何查看kill的信息編號(hào)?
:kill -l
4、寫出正常關(guān)閉 進(jìn)程編號(hào) 為 233 的命令
:kill -15 pid? or? kill pid
5、寫出強(qiáng)制關(guān)閉 進(jìn)程編號(hào) 為 233 的命令
:kill -9 pid
一、
加在一個(gè)命令的最后,可以把這個(gè)命令放到后臺(tái)執(zhí)行,如:
[root@bqh-01 ~]# watch -n 3 "sh 1.sh " #每3s在后臺(tái)執(zhí)行一次 1.sh 腳本
二、ctrl + z
可以將一個(gè)正在前臺(tái)執(zhí)行的命令放到后臺(tái),并且處于暫停狀態(tài)。
三、jobs
查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令
jobs -l選項(xiàng)可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進(jìn)程標(biāo)識(shí)。
將后臺(tái)中的命令調(diào)至 前臺(tái) 繼續(xù)運(yùn)行。如果后臺(tái)中有多個(gè)命令,可以用fg %jobnumber(是命令編號(hào),不是進(jìn)程號(hào))將選中的命令調(diào)出。
五、bg
將一個(gè)在后臺(tái)暫停的命令,變成在 后臺(tái) 繼續(xù)執(zhí)行。如果后臺(tái)中有多個(gè)命令,可以用bg %jobnumber將選中的命令調(diào)出。
六、kill
****
前臺(tái)進(jìn)程的終止:Ctrl+c
****七、 nohup
如果讓程序始終在后臺(tái)執(zhí)行,即使關(guān)閉當(dāng)前的終端也執(zhí)行(之前的做不到),這時(shí)候需要nohup。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。關(guān)閉中斷后,在另一個(gè)終端jobs已經(jīng)無法看到后臺(tái)跑得程序了,此時(shí)利用ps(進(jìn)程查看命令)
pre style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;"ps -aux | grep "1.sh" #a:顯示所有程序 u:以用戶為主的格式來顯示 x:顯示所有程序,不以終端機(jī)來區(qū)分/pre
Linux系統(tǒng)中我們一般使用如下四種方式來進(jìn)行關(guān)機(jī),具體如下:
1、shutdown命令
shutdown命令用于安全關(guān)閉Linux系統(tǒng)。
執(zhí)行shutdown命令時(shí),系統(tǒng)會(huì)通知所有登錄的用戶系統(tǒng)將要關(guān)閉,并且login指令會(huì)被凍結(jié),即新的用戶不能再登錄系統(tǒng)。使用shutdown命令可以直接關(guān)閉系統(tǒng),也可以延遲指定的時(shí)間再關(guān)閉系統(tǒng),還可以重新啟動(dòng)。延遲指定的時(shí)間再關(guān)閉系統(tǒng),可以讓用戶有時(shí)間儲(chǔ)存當(dāng)前正在處理的文件和關(guān)閉已經(jīng)打開的程序。
shutdown命令的部分參數(shù)如下:
[-t] 指定在多長(zhǎng)時(shí)間之后關(guān)閉系統(tǒng)
[-r] 重啟系統(tǒng)
[-k] 并不真正關(guān)機(jī),只是給每個(gè)登錄用戶發(fā)送警告信號(hào)
[-h] 關(guān)閉系統(tǒng)
2、halt命令
halt是最簡(jiǎn)單的關(guān)機(jī)命令,其實(shí)際上是調(diào)用shutdown -h命令。halt執(zhí)行時(shí),殺死應(yīng)用進(jìn)程,文件系統(tǒng)寫操作完成后就會(huì)停止內(nèi)核。
halt命令的部分參數(shù)如下:
[-f] 沒有調(diào)用shutdown而強(qiáng)制關(guān)機(jī)或重啟
[-i] 關(guān)機(jī)或重新啟動(dòng)之前,關(guān)掉所有的網(wǎng)絡(luò)接口
[-p] 關(guān)機(jī)時(shí)調(diào)用poweroff,此選項(xiàng)為缺省選項(xiàng)
3、reboot命令
reboot的工作過程與halt類似,其作用是重新啟動(dòng),而halt是關(guān)機(jī)。其參數(shù)也與halt類似。
4、init命令
init是所有進(jìn)程的祖先,其進(jìn)程號(hào)始終為1。init用于切換系統(tǒng)的運(yùn)行級(jí)別,切換的工作是立即完成的。init 0命令用于立即將系統(tǒng)運(yùn)行級(jí)別切換為0,即關(guān)機(jī);init 6命令用于將系統(tǒng)運(yùn)行級(jí)別切換為6,即重新啟動(dòng)。
在linux系統(tǒng)中停止進(jìn)程需要以下三個(gè)步驟,下面具體介紹以下:
1、打開進(jìn)程id,用ps命令查找進(jìn)程,使用-e?選項(xiàng)。通過less的方式輸出
2、找到進(jìn)程,通過grep將ps的輸出通過管道傳輸,并指定該進(jìn)程的名稱。
3、找到要終止的進(jìn)程,然后通過kill命令來停止進(jìn)程。
今天的分享就是這些,希望能幫助大家。
本文章基于thinkpadE15品牌、centos7系統(tǒng)撰寫的。
示例:在Linux平臺(tái)上后臺(tái)運(yùn)行4個(gè)vim進(jìn)程,使用如下命令即可同時(shí)結(jié)束掉4個(gè)vim進(jìn)程
ps -efww|grep vim |grep -v grep|cut -c 9-15|xargs kill -9
說明:管道符“|”用來隔開兩個(gè)命令,管道符左邊命令的輸出會(huì)作為管道符右邊命令的輸入。
“ps -efww”是查看所有進(jìn)程的命令。這時(shí)檢索出的進(jìn)程將作為下一條命令“grep“的輸入,注意要結(jié)束其它程序時(shí),請(qǐng)將上面命令中的vim替換成其它程序名。
“grep -v grep”是在列出的進(jìn)程中去除含有關(guān)鍵字“grep”的進(jìn)程。
“cut -c 9-15”是截取輸入行的第9個(gè)字符到第15個(gè)字符,而這正好是進(jìn)程號(hào)PID。
“xargs kill -9”中的xargs命令是用來把前面命令的輸出結(jié)果(PID)作為“kill -9”命令的參數(shù),并執(zhí)行該命令。
“kill -9”會(huì)強(qiáng)行殺掉指定進(jìn)程,這樣就成功清除了同名進(jìn)程。
您好,方法
首先登錄linux服務(wù)器。
方式1:輸入【pgrep 進(jìn)程名稱】即可獲取到pid列表。
方式2:使用【ps】命令查看進(jìn)程pid。
例如:ps -ef|grep java
-e:顯示所有進(jìn)程。
-f :做一個(gè)更為完整的輸出。
| 管道
grep xxxx 篩選出xxxx的進(jìn)程。
方式3:使用【top】命令查看進(jìn)程pid。
在命令行輸入:top 按下回車鍵即可。
【ctrl+c】是退出top界面。
方式4:通過【ls /proc】命令查看進(jìn)程pid。
Linux在啟動(dòng)一個(gè)進(jìn)程時(shí),系統(tǒng)會(huì)在/proc下創(chuàng)建一個(gè)以PID命名的文件 夾。
每一個(gè)數(shù)字文件夾就是對(duì)應(yīng)的一個(gè)進(jìn)程pid。
查出需要關(guān)閉的進(jìn)程ID后,使用命令【pkill -9 進(jìn)程ID】即可刪除關(guān)閉進(jìn)程。