pkill命令詳解

 

基礎命令學習目錄首頁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

pkill命令用法之 - 從終端踢掉其餘登陸者

標籤:linux   命令   pkill   

原文地址:http://wyjs6.blog.51cto.com/465920/1941180

相關文章
相關標籤/搜索