Linux ps grep kill


想结束系统中指定的进程,有以下指令可能参考:
ps -ef | grep pure-ftpd | grep -v grep | awk '{print $2" "$3}' | xargs kill -9 = pkill pure-ftpd
killall -9 nginx 或者 kill -9 `ps aux |grep -i nginx |grep -v grep |awk '{print $2}'` = kill -9 `pgrep nginx`
以上是很常规的方法,下面我们介绍一种系统自带的工具的用法。
名称
pgrep, pkill(其实是pgrep的链接) – 查找或者发信号给进程通过名称和其它属性,我们能得到进程许多信息和通过这些来对其进行相关操作。
语法
pgrep [-flvx] [-n | -o] [-d delim] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-t termlist] [-c ctidlist] [-z zoneidlist] [pattern]
pkill [-signal] [-fvx] [-n | -o] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern]
说明:
pgrep程序检查在系统的中活动进程,报告进程属性匹配命令行上指定条件的进程的ID。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
例如:
pgrep -G other,daemon
匹配真实组ID是other或者是daemon的进程。如果多个条件被指派,这些匹配条件按逻辑与"AND"规则运算。
例如:
pgrep -G other,daemon -U root,daemon
匹配进程它的属性是:
(真实的组ID是other或者是daemon) 与 (真实的用户ID是root或者是daemon)。
pkill函数和pgrep相同,除了匹配的进程被信号通知就像用kill(1)替代了pgrep的进程ID的输出,一个信号名称或者数字可以作为pkill的第一个命令行选项。
选项
支持下面的选项:
-c ctidlist 仅匹配列表中列出的ID的进程数。
# pgrep -c ssh -l
6
-d delim 指定每一个匹配的进程ID之间分割字符串,如果没有 -d 选项指定,默认的是新行字符,-d 选项仅在pgrep命令中有效。
-f 正则表达式模式将执行与完全进程参数字符串 (从/proc/nnnnn/psinfo文件的pr_psargs字段获得)匹配。如果没有 -f 选项,表达式仅对执行文件名称(从/proc/nnnnn/psinfo文件pr_fname字段获得)匹配。
# pgrep -f ng -l
2159 nginx: master process /usr/sbin/nginx
2160 nginx: worker process
2222 hald-addon-input: Listening on /dev/input/event3 /dev/input/event2 /dev/input/event0
2230 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
2231 hald-addon-storage: polling /dev/hdc (every 2 sec)
-g pgrplist 仅匹配进程组ID在给定列表中的进程,如果组0包括在列表中,这个被解释为pgrep或者pkill进程的组ID。
# pgrep -g 2159 -l
2159 nginx(所有nginx进程的父进程)
2160 nginx
-G gidlist 仅匹配真实组ID在给定列表中的进程,每一个组ID可以使用组名称或者数字的组ID指定。
# pgrep -G 1000 -l
2388 sshd
2395 bash
2420 sshd
2421 sftp-server
-l 长格式输出,输出每一个匹配进程的名称连同进程ID,进程名称从pr_psargs 或者 pr_fname字段获得,依赖于-f选项是否指定。-l选项仅在pgrep命令中有效。
-n 匹配最新(最近生成的)符合所有其它匹配条件的进程,不能和-o选项一起使用。
-o 匹配最旧(最早生成的)符合所有其它匹配条件的进程,不能和-n选项一起使用。
-P ppidlist 仅匹配给定列表中父进程ID的进程。
# pgrep -P 2159 -l
2160 nginx
-s sidlist 仅匹配进程会话ID在给定列表中的进程,如果ID 0在列表中,这个解释为pgrep或者pikill进程的会话ID。
# pgrep -s 2159 -l
2159 nginx
2160 nginx
-t termlist 仅匹配与给定列表中终端关联的进程,每一个终端指定为在/dev中终端设备路径名称的后缀。例如term/a 或者 pts/0。
# pgrep -t pts/1 -l
2395 bash
-u euidlist 仅匹配有效用户ID在给定列表中的进程,每个用户ID可以通过一个登录名称或者数字的用户ID指定。
# pgrep -u hto -l
2388 sshd
2395 bash
-U uidlist 仅匹配真实的用户ID在给定列表中的进程,每个用户ID可以通过一个登录名称或者数字的用户ID指定。
# pgrep -U hto -l
2388 sshd
2395 bash
2420 sshd
2421 sftp-server
-v 反向匹配。匹配所有的进程除了符合匹配条件的。
-x 仅认为进程的参数字符串或者执行文件名称正确匹配规定模式是匹配的进程,模式被认为是准确的当所有在进程参数字符串或者可执行文件名称的字符匹配模式。
# pgrep -d, -x nginx
2159,2160
-z zoneidlist 仅匹配区域ID在给定列表中的进程,每一个区域ID可以使用一个区域名称或者一个数字的区域ID指定,这个选项仅在全局区域中执行有效,如果pkill程序用来往其它区域的进程发信号,进城必须宣称{PRIV_PROC_ZONE}特权。
-signal 指定发往每一个匹配进程的信号。如果没有指定,SIGTERM 是默认的信号。-signal仅在pkill命令中作为第一个选项有效。信号可以是在signal.h中定义的没有SIG前缀的一个符号名字,也可是一个相应的信号数值。
操作
支持如下操作:
pattern
指定一个扩展正则表达式(Extended Regular Expression (ERE))模式来匹配可执行文件名称或者完整的进程参数字符串,ERE语法的完整描述参看regex(5)。
示例
例1、获得一个进程的ID号
获得nginx的进程ID:
$ pgrep -x -u root nginx
2123
例2、终止一个进程
终止最近生成的apache2:
$ pkill -n apache2
Example 3: Find the process ID of the named daemon:
$ pgrep -u root named
Example 4: Make syslog reread its configuration file:
$ pkill -HUP syslogd
Example 5: Give detailed information on all xterm processes:
$ ps -fp $(pgrep -d, -x xterm)
Exit Status
如下退出值被返回:
0 一个或者多个进程被匹配。
1 没有进程被匹配。
2 指定了无效的命令行参数。
3 出现一个致命的错误。
将用户运行的进程找出并通过进程ID来终结它们
find out all running processes of user account and kill them by determine the PIDs (Process IDs) of processes owned by the user using:
# pgrep -u freeoa
# ps -f --pid $(pgrep -u freeoa)
you can use the killall command to kill those running processes as shown.
# killall -9 -u freeoa
The -9 is the signal number for the SIGKILL signal or use -KILL instead of -9 and -u defines username.
Note: In recent releases of RedHat/CentOS 7.x versions and Fedora 21+, you will get error message as:
-bash: killall: command not found
To fix such error, you need to install psmisc package as shown:
# yum install psmisc [On RedHat/CentOS 7.x]
Package: psmisc
Description-en: utilities that use the proc file system
This package contains miscellaneous utilities that use the proc FS:
- fuser: identifies processes that are using files or sockets.
- killall: kills processes by name (e.g. "killall -HUP named").
- peekfd: shows the data traveling over a file descriptor.
- pstree: shows currently running processes as a tree.
- prtstat: print the contents of /proc/<pid>/stat
ps命令用法
ps是进程查看命令,使用这个命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。
参数说明
常用参数:
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线。
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径,dx不可合用(utility)。
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U freeoa(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行
常用用法:
ps a:显示现行终端机下的所有程序,包括其他用户的程序。
ps -A:显示所有程序。
ps c:列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e:此参数的效果和指定"A"参数相同。
ps e:列出程序时,显示每个程序所使用的环境变量。
ps f:用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H:显示树状结构,表示程序间的相互关系。
ps -N:显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s:采用程序信号的格式显示程序状况。
ps S:列出程序时,包括已中断的子程序资料。
ps -t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
ps u:以用户为主的格式来显示程序状况。
ps x:显示所有程序,不以终端机来区分。
ps -l:较长较详细的显示该pid信息
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
结果说明
USER 用户名。
UID 用户ID(User ID)。
PID 进程ID(Process ID)。
PPID 父进程的进程ID(Parent Process id)。
SID 会话ID(Session id)。
%CPU 进程的cpu占用率。
%MEM 进程的内存占用率。
VSZ 进程所使用的虚存的大小(Virtual Size)。
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY 与进程关联的终端(tty)。
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)。
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中,受阻,在等待某个条件的形成或接受到信号。
I 空闲 Idle。
Z 僵死 Zombie(a defunct process) 进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行,进程必须等待直到有中断发生。
T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页。
W 无驻留页 has no resident pages 没有足够的内存分页可分配。
X 死掉的进程。
< 高优先级进程 高优先序的进程。
N 低优先 级进程 低优先序的进程。
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内。
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)。
+ 位于后台的进程组
START 进程启动时间和日期。
TIME 进程使用的总cpu时间。
COMMAND 正在执行的命令行命令。
NI 优先级(Nice)。
PRI 进程优先级编号(Priority)。
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识。
pkill命令用法之 - 从终端踢掉其他登录者
想从终端快速踢掉系统中其他登录者,可以先用w命令查看当前所有登录信息,并确定自己所在终端号。命令显示中有'w'的行所指明的TTY值就是你当前登录的终端号(pts/1),接下来用pkill命令按需求踢掉其他的登陆者即可,假如现在你想踢掉当前登录用户gentoo,从上面的w命令看gentoo用户所在的终端号为(pts/0),使用如下pkill命令:
# pkill -9 -t pts/0
再用w命令查看
命令格式:
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 ActionComment
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
SIGUSR 130,10,16 Term User-defined signal 1
SIGUSR 231,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
ps -ef | grep pure-ftpd | grep -v grep | awk '{print $2" "$3}' | xargs kill -9 = pkill pure-ftpd
killall -9 nginx 或者 kill -9 `ps aux |grep -i nginx |grep -v grep |awk '{print $2}'` = kill -9 `pgrep nginx`
以上是很常规的方法,下面我们介绍一种系统自带的工具的用法。
名称
pgrep, pkill(其实是pgrep的链接) – 查找或者发信号给进程通过名称和其它属性,我们能得到进程许多信息和通过这些来对其进行相关操作。
语法
pgrep [-flvx] [-n | -o] [-d delim] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-t termlist] [-c ctidlist] [-z zoneidlist] [pattern]
pkill [-signal] [-fvx] [-n | -o] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern]
说明:
pgrep程序检查在系统的中活动进程,报告进程属性匹配命令行上指定条件的进程的ID。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
例如:
pgrep -G other,daemon
匹配真实组ID是other或者是daemon的进程。如果多个条件被指派,这些匹配条件按逻辑与"AND"规则运算。
例如:
pgrep -G other,daemon -U root,daemon
匹配进程它的属性是:
(真实的组ID是other或者是daemon) 与 (真实的用户ID是root或者是daemon)。
pkill函数和pgrep相同,除了匹配的进程被信号通知就像用kill(1)替代了pgrep的进程ID的输出,一个信号名称或者数字可以作为pkill的第一个命令行选项。
选项
支持下面的选项:
-c ctidlist 仅匹配列表中列出的ID的进程数。
# pgrep -c ssh -l
6
-d delim 指定每一个匹配的进程ID之间分割字符串,如果没有 -d 选项指定,默认的是新行字符,-d 选项仅在pgrep命令中有效。
-f 正则表达式模式将执行与完全进程参数字符串 (从/proc/nnnnn/psinfo文件的pr_psargs字段获得)匹配。如果没有 -f 选项,表达式仅对执行文件名称(从/proc/nnnnn/psinfo文件pr_fname字段获得)匹配。
# pgrep -f ng -l
2159 nginx: master process /usr/sbin/nginx
2160 nginx: worker process
2222 hald-addon-input: Listening on /dev/input/event3 /dev/input/event2 /dev/input/event0
2230 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
2231 hald-addon-storage: polling /dev/hdc (every 2 sec)
-g pgrplist 仅匹配进程组ID在给定列表中的进程,如果组0包括在列表中,这个被解释为pgrep或者pkill进程的组ID。
# pgrep -g 2159 -l
2159 nginx(所有nginx进程的父进程)
2160 nginx
-G gidlist 仅匹配真实组ID在给定列表中的进程,每一个组ID可以使用组名称或者数字的组ID指定。
# pgrep -G 1000 -l
2388 sshd
2395 bash
2420 sshd
2421 sftp-server
-l 长格式输出,输出每一个匹配进程的名称连同进程ID,进程名称从pr_psargs 或者 pr_fname字段获得,依赖于-f选项是否指定。-l选项仅在pgrep命令中有效。
-n 匹配最新(最近生成的)符合所有其它匹配条件的进程,不能和-o选项一起使用。
-o 匹配最旧(最早生成的)符合所有其它匹配条件的进程,不能和-n选项一起使用。
-P ppidlist 仅匹配给定列表中父进程ID的进程。
# pgrep -P 2159 -l
2160 nginx
-s sidlist 仅匹配进程会话ID在给定列表中的进程,如果ID 0在列表中,这个解释为pgrep或者pikill进程的会话ID。
# pgrep -s 2159 -l
2159 nginx
2160 nginx
-t termlist 仅匹配与给定列表中终端关联的进程,每一个终端指定为在/dev中终端设备路径名称的后缀。例如term/a 或者 pts/0。
# pgrep -t pts/1 -l
2395 bash
-u euidlist 仅匹配有效用户ID在给定列表中的进程,每个用户ID可以通过一个登录名称或者数字的用户ID指定。
# pgrep -u hto -l
2388 sshd
2395 bash
-U uidlist 仅匹配真实的用户ID在给定列表中的进程,每个用户ID可以通过一个登录名称或者数字的用户ID指定。
# pgrep -U hto -l
2388 sshd
2395 bash
2420 sshd
2421 sftp-server
-v 反向匹配。匹配所有的进程除了符合匹配条件的。
-x 仅认为进程的参数字符串或者执行文件名称正确匹配规定模式是匹配的进程,模式被认为是准确的当所有在进程参数字符串或者可执行文件名称的字符匹配模式。
# pgrep -d, -x nginx
2159,2160
-z zoneidlist 仅匹配区域ID在给定列表中的进程,每一个区域ID可以使用一个区域名称或者一个数字的区域ID指定,这个选项仅在全局区域中执行有效,如果pkill程序用来往其它区域的进程发信号,进城必须宣称{PRIV_PROC_ZONE}特权。
-signal 指定发往每一个匹配进程的信号。如果没有指定,SIGTERM 是默认的信号。-signal仅在pkill命令中作为第一个选项有效。信号可以是在signal.h中定义的没有SIG前缀的一个符号名字,也可是一个相应的信号数值。
操作
支持如下操作:
pattern
指定一个扩展正则表达式(Extended Regular Expression (ERE))模式来匹配可执行文件名称或者完整的进程参数字符串,ERE语法的完整描述参看regex(5)。
示例
例1、获得一个进程的ID号
获得nginx的进程ID:
$ pgrep -x -u root nginx
2123
例2、终止一个进程
终止最近生成的apache2:
$ pkill -n apache2
Example 3: Find the process ID of the named daemon:
$ pgrep -u root named
Example 4: Make syslog reread its configuration file:
$ pkill -HUP syslogd
Example 5: Give detailed information on all xterm processes:
$ ps -fp $(pgrep -d, -x xterm)
Exit Status
如下退出值被返回:
0 一个或者多个进程被匹配。
1 没有进程被匹配。
2 指定了无效的命令行参数。
3 出现一个致命的错误。
将用户运行的进程找出并通过进程ID来终结它们
find out all running processes of user account and kill them by determine the PIDs (Process IDs) of processes owned by the user using:
# pgrep -u freeoa
# ps -f --pid $(pgrep -u freeoa)
you can use the killall command to kill those running processes as shown.
# killall -9 -u freeoa
The -9 is the signal number for the SIGKILL signal or use -KILL instead of -9 and -u defines username.
Note: In recent releases of RedHat/CentOS 7.x versions and Fedora 21+, you will get error message as:
-bash: killall: command not found
To fix such error, you need to install psmisc package as shown:
# yum install psmisc [On RedHat/CentOS 7.x]
Package: psmisc
Description-en: utilities that use the proc file system
This package contains miscellaneous utilities that use the proc FS:
- fuser: identifies processes that are using files or sockets.
- killall: kills processes by name (e.g. "killall -HUP named").
- peekfd: shows the data traveling over a file descriptor.
- pstree: shows currently running processes as a tree.
- prtstat: print the contents of /proc/<pid>/stat
Homepage: http://psmisc.sourceforge.net/
ps命令用法
ps是进程查看命令,使用这个命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。
参数说明
常用参数:
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线。
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径,dx不可合用(utility)。
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U freeoa(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行
常用用法:
ps a:显示现行终端机下的所有程序,包括其他用户的程序。
ps -A:显示所有程序。
ps c:列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e:此参数的效果和指定"A"参数相同。
ps e:列出程序时,显示每个程序所使用的环境变量。
ps f:用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H:显示树状结构,表示程序间的相互关系。
ps -N:显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s:采用程序信号的格式显示程序状况。
ps S:列出程序时,包括已中断的子程序资料。
ps -t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
ps u:以用户为主的格式来显示程序状况。
ps x:显示所有程序,不以终端机来区分。
ps -l:较长较详细的显示该pid信息
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
结果说明
USER 用户名。
UID 用户ID(User ID)。
PID 进程ID(Process ID)。
PPID 父进程的进程ID(Parent Process id)。
SID 会话ID(Session id)。
%CPU 进程的cpu占用率。
%MEM 进程的内存占用率。
VSZ 进程所使用的虚存的大小(Virtual Size)。
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY 与进程关联的终端(tty)。
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)。
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中,受阻,在等待某个条件的形成或接受到信号。
I 空闲 Idle。
Z 僵死 Zombie(a defunct process) 进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行,进程必须等待直到有中断发生。
T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页。
W 无驻留页 has no resident pages 没有足够的内存分页可分配。
X 死掉的进程。
< 高优先级进程 高优先序的进程。
N 低优先 级进程 低优先序的进程。
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内。
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)。
+ 位于后台的进程组
START 进程启动时间和日期。
TIME 进程使用的总cpu时间。
COMMAND 正在执行的命令行命令。
NI 优先级(Nice)。
PRI 进程优先级编号(Priority)。
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识。
pkill命令用法之 - 从终端踢掉其他登录者
想从终端快速踢掉系统中其他登录者,可以先用w命令查看当前所有登录信息,并确定自己所在终端号。命令显示中有'w'的行所指明的TTY值就是你当前登录的终端号(pts/1),接下来用pkill命令按需求踢掉其他的登陆者即可,假如现在你想踢掉当前登录用户gentoo,从上面的w命令看gentoo用户所在的终端号为(pts/0),使用如下pkill命令:
# pkill -9 -t pts/0
再用w命令查看
命令格式:
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 ActionComment
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
SIGUSR 130,10,16 Term User-defined signal 1
SIGUSR 231,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