亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Linux系統中kill命令殺死進程常用小技巧分享

瀏覽:428日期:2023-09-26 20:56:15
目錄Linux系統中kill命令殺死進程小技巧基礎進階1 查找進程號的方式進行改進2 將常規的兩步殺死進程合并為一步3 強制踢掉登陸用戶kill的注意事項Linux中殺死進程kill和killall命令的區別第一種方法第二種方法總結Linux系統中kill命令殺死進程小技巧

在Linux的系統中,kill是我們最常見的命令之一。

kill,英語中為殺死的意思,顧名思義,就是用來殺死一些東西的命令,在linux中就是用來殺死系統中的進程。

在Windows系統中,如果應用程序無反應我們會啟動任務管理器終止應用,而在Linux系統中則使用kill命令,kill命令主要用于強制關閉進程,下面就介紹一下Linux中kill命令的基礎用法和進階用法。

基礎

一般情況下,想要殺死后臺一個進程,我們通常只需要做兩步:

第一步:找到某個應用的進程號

ps -aux | grep 應用名稱

或 ps -ef | grep 應用名稱

或者 top | grep 應用名稱

第二步:殺死進程

正常殺死進程:kill -15 pid號

如殺死上圖中pid為10的進程:kill -15 10

強制殺死進程: kill -9 pid號

注:殺死進程的時候,推薦是正常殺死進程,而不是強制殺死進程。

原理解讀:

Kill命令和信號

當你執行一個“kill”命令,你實際上發送了一個信號給系統,告訴它去終結不正常的應用。總共有60個你可以使用的信號,但是基本上你只需要知道SIGTERM(15)(正常殺死信號)和SIGKILL(9)(強制殺死信號)。

你可以用這個命令看到所有信號的列表:

kill -l

上圖:共有64中信號,每種信號均有名稱和對應的信號序列號,當想要發送什么信號給系統的時候,只要告知系統該信號的序列號即可。如想要強制結束進程,則需要發送9號信號給系統,應該是這樣的:kill -9 pid號。

實際中常用的只有9種信號(最常用的只有2中:9 和 15):

<1> 1 終端斷線<2>2 中斷(等同 Ctrl + C)<3>3 退出(同 Ctrl + \)<4>15 終止(可以使得進程在退出之前清理并釋放資源)<5> 9 強制終止<6>18 繼續(與19相反)<7>19 暫停(等同 Ctrl + Z)進階1 查找進程號的方式進行改進

以查找firefox進程為例:

常規:ps -aux | grep java

進階:pgrep java

或: pidof firefox-bin (不推薦)

解讀:

pgrep: 這個命令是專門用于進程查詢的grep。pidof: 看到pidof想到啥?沒錯pid of xx,字面翻譯過來就是 xx的PID。和pgrep相比稍顯不足的是,pidof必須給出進程的全名。2 將常規的兩步殺死進程合并為一步

進階1: kill -s 9 `ps -aux | grep firefox | awk '{print $2}'`

其中awk '{print $2}' 的作用就是打印(print)出第二列的內容。根據常規篇,可以知道ps輸出的第二列正好是PID。就把進程相應的PID通過xargs傳遞給kill作參數,殺掉對應的進程。

進階2: pgrep firefox | xargs kill -s 9

“ xargs kill -s 9 ”中的xargs命令是用來把前面命令的輸出結果(PID)作為“kill -s 9”命令的參數,并執行該命令。“kill -s 9”會強行殺掉指定進程。

進階3:kill -s 9 `pgrep firefox`

進階4: pkill -9 firefox

前面三個進階雖然將查找進程和刪除進程合并為一個步驟,但是,仍然是兩個命令,這里采用pkill命令將查找和殺掉進程的兩個命令合并為一個命令了,即:pkill=pgrep + kill,表示找到并殺死進程。

進階5:killall -9 firefox

killall和pkill是相似的,不過如果給出的進程名不完整,killall會報錯。pkill或者pgrep只要給出進程名的一部分就可以終止進程。

3 強制踢掉登陸用戶

有的時候,可能我們的系統中有很多用戶在同時登陸這一臺服務器,而我們想要踢掉某個不良用戶,就可以執行如下操作。

(1)查看用戶登陸信息: who

(2)查看自己的身份(避免把自己踢掉):whoami

(3)踢掉用戶ats

pkill -kill -t pts/2(按終端踢,pts/2為所踢用戶的終端)

pkill -u ats(按用戶名踢,ats為用戶名)

kill的注意事項

1.如果kill時,不指定信號就會默認發送信號15,終止指定進程,使得進程在退出之前清理并釋放資源。

2.使用kill時,root用戶將影響用戶的進程,非root用戶只能影響自己的進程。

3.使用kill時,當kill向進程發送信號,必須是這些進程的主人。如果殺死一個沒有權限殺死的進程或殺死一個不存在的進程,就會報錯。如下:-bash: kill: (20) - No such process

4.使用kill時,如果成功地發送了信號,shell會在屏幕上顯示出進程的終止信息。(按下Enter鍵,就會顯示出來)

5.使用kill時,如果使用信號9,使進程強行終止,可能會使數據丟失或者終端無法恢復到正常狀態。

6.init進程,它是一個由內核啟動的用戶級進程,所有進程都是init進程的子孫,init不可殺。

Linux中殺死進程kill和killall命令的區別第一種方法

kill [信號代碼] 進程ID

注:信號代碼可以省略;我們常用的信號代碼是 -9 ,表示強制終止。

對于僵尸進程,可以用kill -9 來強制終止退出。

kill 的應用,是和ps 或pgrep 命令結合在一起使用的。

如下:

1 [root@-linux-byx ~]# ps -ef|grep magic_Linux2 root 13020 1 1 1月16 ? 00:33:35 ./magic_Linux013 root 22761 1 1 01:27 ? 00:06:35 ./magic_Linux024 root 25279 1 0 1月16 ? 00:16:48 ./magic_Linux035 root 27694 1 0 1月16 ? 00:16:48 ./magic_Linux04

kill 命令實例:用kill 殺死 進程 magic_Linux02

[root@-linux-byx ~]# kill -9 22761

與kill命令不同的是,killall 命令可以根據進程名稱來殺死進程。kill 命令 則先需要找到進程的id。

第二種方法

killall 通過程序的名字,直接殺死所有進程

killall 也和ps或pgrep 結合使用,比較方便。

如下:

1 [root@-linux-byx ~]# pgrep -l magic_Linux2 13020 magic_Linux013 22761 magic_Linux024 25279 magic_Linux035 27694 magic_Linux04

killall 命令實例: 用killall 殺死 進程 magic_Linux02

[root@-linux-byx ~]# killall magic_Linux總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Linux
主站蜘蛛池模板: 伊人色婷婷 | 国产做受视频激情播放 | 高清国产精品入口麻豆 | 中日韩毛片| 最新国产精品自拍 | 亚洲一级色 | 久草在线免费福利资源站 | 成人国产三级精品 | 亚洲特黄大黄一级毛片 | 日本一级毛片a免费播放 | 99精品亚洲 | 国产精品久久福利新婚之夜 | 亚洲成人一区 | 黄色三区 | 色优久久| 丝袜制服国产 | 高清潢色大片 | 在线免费国产视频 | 99热国产这里只有精品免费 | 国产亚洲欧洲国产综合一区 | 91精品国产免费入口 | 成年人黄视频 | 日韩亚洲国产欧美精品 | 亚洲午夜国产精品无卡 | 香蕉久久国产精品免 | 欧美一级a俄罗斯毛片 | 亚洲国产一区在线二区三区 | 黄污视频在线看 | 中文字幕美日韩在线高清 | 国产高清晰在线播放 | 在线播放人成午夜免费视频 | 深夜福利国产精品亚洲尤物 | 午夜影视污 | 国产三级在线免费观看 | 国产1024 | 92精品国产自产在线观看48页 | 欧美笫一页 | 日本在线日本中文字幕日本在线视频播放 | 国产福利在线观看第二区 | 青青青草网站免费视频在线观看 | 国模精品视频一区二区三区 |