基礎命令學習目錄首頁html
原文連接:http://www.mamicode.com/info-detail-2315063.htmllinux
是ps命令和kill命令的結合,按照進程名來殺死指定進程,pkill和killall應用方法差很少,也是直接殺死運行中的程序;若是您想殺掉單個進程,請用kill來殺掉。正則表達式
pkill(選項)(參數)bash
● -c ctidlist 僅匹配列表中列出的ID的進程。
● -d delim 指定每個匹配的進程ID之間分割字符串。若是沒有 -d 選項指定,默認的是新行字符。-d 選項僅在pgrep命令中有效。
● -f正則表達式模式將執行與徹底進程參數字符串 (從/proc/nnnnn/psinfo文件的pr_psargs字段得到)匹配。若是沒有 -f 選項,表達式僅對執行文件名稱(從/proc/nnnnn/psinfo文件pr_fname字段得到)匹配。
● -g pgrplist僅匹配進程組ID在給定列表中的進程。若是組0包括在列表中,這個被解釋爲pgrep或者pkill進程的組ID。
● -G gidlist僅匹配真實組ID在給定列表中的進程。每個組ID可使用組名稱或者數字的組ID指定。
● -J projidlist匹配項目ID在給定列表中的進程。每個項目ID可使用項目的名稱或者數字項目ID來指定。
● -l長格式輸出。輸出每個匹配進程的名稱連同進程ID。進程名稱從pr_psargs 或者 pr_fname字段得到,依賴於-f選項是否指定。-l選項僅在pgrep命令中有效。
● -n匹配最新(最近生成的)符合全部其它匹配條件的進程。不能和-o選項一塊兒使用。
● -o匹配最舊(最先生成的)符合全部其它匹配條件的進程。不能和-n選項一塊兒使用。
● -P ppidlist 僅匹配給定列表中父進程ID的進程。
● -s sidlist 僅匹配進程會話ID在給定列表中的進程。若是ID 0在列表中,這個解釋爲pgrep或者pikill進程的會話ID。
● -t termlist 僅匹配與給定列表中終端關聯的進程。每個終端指定爲在/dev中終端設備路徑名稱的後綴。例如term/a 或者 pts/0。
● -T taskidlist 僅匹配在給定列表中任務ID的進程。若是ID 0包括在列表中,這個解釋爲pgrep或者pikill進程的會話ID。
● -u euidlist 僅匹配有效用戶ID在給定列表中的進程。每一個用戶ID能夠經過一個登陸名稱或者數字的用戶ID指定。
● -U uidlist 僅匹配真實的用戶ID在給定列表中的進程。每一個用戶ID能夠經過一個登陸名稱或者數字的用戶ID指定。
● -v 反向匹配。匹配全部的進程除了符合匹配條件的。
● -x 僅認爲進程其參數字符串或者執行文件名稱正確匹配規定模式是匹配的進程。模式被認爲是準確的當全部在進程參數字符串或者可執行文件名稱的字符匹配模式。
● -z zoneidlist 僅匹配區域ID在給定列表中的進程。每個區域ID可使用一個區域名稱或者一個數字的區域ID指定。這個選項僅在全局區域中執行有效。若是pkill程序用來往其它區域的進程發信號,進城必須宣稱{PRIV_PROC_ZONE}特權。
● -signal 指定發往每個匹配進程的信號。若是沒有指定,SIGTERM 是默認的信號。-signal僅在pkill命令中做爲第一個選項有效。信號能夠是在signal.h中定義的沒有SIG前綴的一個符號名字,也但是一個相應的信號數值。服務器
進程名稱:指定要查找的進程名稱,同時也支持相似grep指令中的匹配模式post
pkill詳解學習
執行pkill -u root以後服務器連不上也訪問不了了。ui
例1url
[root@redhat ~]# pkill -t tty1 #殺死終端1下的全部進程 [root@Centos ~]# pkill -kill -t pts/2 #踢用戶 [root@redhat ~]# pkill -9 6985 #完全殺死進程 [root@redhat ~]# pkill -u tank #殺死指定用戶的全部進程 [root@redhat ~]# pkill -vu root #殺死不屬於root用戶的全部進程
操做命令行
支持以下操做:
pattern
指定一個擴展正則表達式(Extended Regular Expression (ERE))模式來匹配可執行文件名稱或者完整的進程參數字符串。ERE語法的完整描述參看regex(5)。
例子
例子1 得到一個進程ID
得到sendmail的進程ID:
example% pgrep -x -u root sendmail
283
例子2 終止一個進程
終止最近生成的xterm:
example% pkill -n xterm
Exit Status
以下退出值被返回:
0 一個或者多個進程被匹配。
1 沒有進程被匹配。
2 指定了無效的命令行參數。
3 出現一個致命的錯誤。
想從終端快速踢掉系統中其餘登陸者,能夠先用w命令查看當前全部登陸信息,並肯定本身所在終端號。
[root@gateway ~]# w
10:14:52 up 6:01, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 10:10 36.00s 0.23s 0.23s -bash
gentoo pts/0 10.1.1.110 10:14 12.00s 0.07s 0.07s -bash
root pts/1 192.168.10.198 09:46 4.00s 0.19s 0.01s w
[root@gateway ~]#
命令顯示中有「w」的行所指明的TTY值就是你當前登陸的終端號(pts/1),接下來用pkill命令按需求踢掉其餘的登錄者便可,假如如今你想踢掉當前登陸用戶gentoo,從上面的w命令看gentoo用戶所在的終端號爲(pts/0),使用以下pkill命令:
[root@gateway ~]# pkill -9 -t pts/0
再用w命令查看
[root@gateway ~]# w
10:23:53 up 6:10, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 10:10 9:37 0.23s 0.23s -bash
root pts/1 192.168.10.198 09:46 1.00s 0.24s 0.01s w
[root@gateway ~]#
登陸用戶gentoo就已經被踢下去了。
命令格式:
pkill -signal -t SIGNAL
-signal
--signal signal
Defines the signal to send to each matched process. Either the numeric or the symbolic
signal name can be used. (pkill only.)
-t, --terminal term,...
Only match processes whose controlling terminal is listed. The terminal name should be
specified without the "/dev/" prefix.
SIGNAL
Signal Value Action Comment
────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
本文出自 「望雲眷蜀」 博客,請務必保留此出處http://wyjs6.blog.51cto.com/465920/1941180
原文地址:http://wyjs6.blog.51cto.com/465920/1941180