linux kill ps的结果,(转载)linux 查看某进程 并杀死进程 ps grep kill

linux 中使用top 或 ps 查看进程使用kill杀死进程

1.使用top查看进程:

1、参数详解

$ top -help

procps-ng version 3.3.9

Usage:

top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

-b:打印所有程序

-c:以命令行的形式显示程序名

-d:设置刷新间隔时间

-h:显示帮助

-H:线程切换

-i:不显示空闲进程

-n:设置刷新帧数,刷新n帧后退出

-p:指定进程号PID,可以指定多个,最多20个,-pN1 -pN2 …或-pN1,N2 [,…]

-s:安全模式,不能使用交互命令

-u:监控用户,匹配有效ID或用户名,如监控root用户,top -uroot;

-U:监控用户,匹配真实、有效、保存、文件所属ID或用户名

-v:打印版本号

2、交互命令

常用命令说明:

Enter:按回车会刷新屏幕;

h:显示交互命令帮助信息

交互式命令的帮助

Help for Interactive Commands - procps-ng version 3.3.9

窗口1:Def:累计模式关闭。系统:延迟3.0秒;安全模式。

Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off.

Z,B,E,e Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale

l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info

0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode

f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

L,&, . Locate: 'L'/'&' find/again; Move sort column: '' left/right

R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify

c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify

x,y . Toggle highlights: 'x' sort field; 'y' running tasks

z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')

u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria

n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)

C,... . Toggle scroll coordinates msg for: up,down,left,right,home,end

k,r Manipulate tasks: 'k' kill; 'r' renice

d or s Set update interval

W,Y Write configuration file 'W'; Inspect other output 'Y'

q Quit

( commands shown with '.' require a visible task display window )

Press 'h' or '?' for help with Windows,

Type 'q' or to continue

#Z:设置颜色,进入设置颜色窗口后,a和w用来切换颜色设置,Enter提出

Help for color mapping - procps-ng version 3.3.9

current window: 1:Def

color - 04:25:44 up 8 days, 50 min, 7 users, load average:

Tasks: 64 total, 2 running, 62 sleeping, 0 stopped,

%Cpu(s): 76.5 user, 11.2 system, 0.0 nice, 12.3 idle

Nasty Message! -or- Input Prompt

PID TTY PR NI %CPU TIME+ VIRT SWAP S COMMAND

17284 pts/2 8 0 0.0 0:00.75 1380 0 S /bin/bash

8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z

11005 ? 9 0 0.0 0:02.50 2852 1008 S amor -sessi

available toggles: B =disable bold globally (Off),

z =color/mono (On), b =tasks "bold"/reverse (On)

1) Select a target as an upper case letter, current target is T :

S = Summary Data, M = Messages/Prompts,

H = Column Heads, T = Task Information

2) Select a color as a number, current color is 1 :

0 = black, 1 = red, 2 = green, 3 = yellow,

4 = blue, 5 = magenta, 6 = cyan, 7 = white

3) Then use these keys when finished:

'q' to abort changes to window '1:Def'

'a' or 'w' to commit & change another, to commit and end

#E、e:分别切换摘要和任务列表中内存的的单位(KiB、MiB、GiB、TiB、PiB、EiB);

#l:显示或隐藏摘要中的平均负载;

#t:显示或隐藏摘要中的cpu统计数据

#m:显示或隐藏摘要中的内存统计数据

#F、f:窗口字段管理,上下键移动、方向键中右键选中后可以移动该字段(左键撤销)、空格或d选择是否显示

Fields Management for window 1:Def, whose current sort field is %CPU

Navigate with Up/Dn, Right selects for move then or Left commits,

'd' or toggles display, 's' sets sort. Use 'q' or to end!

* PID = Process Id DATA = Data+Stack (KiB)

* USER = Effective User Name nMaj = Major Page Faults

* PR = Priority nMin = Minor Page Faults

* NI = Nice Value nDRT = Dirty Pages Count

* VIRT = Virtual Image (KiB) WCHAN = Sleeping in Function

* RES = Resident Size (KiB) Flags = Task Flags

* SHR = Shared Memory (KiB) CGROUPS = Control Groups

* S = Process Status SUPGIDS = Supp Groups IDs

* %CPU = CPU Usage SUPGRPS = Supp Groups Names

* %MEM = Memory Usage (RES) TGID = Thread Group Id

* TIME+ = CPU Time, hundredths ENVIRON = Environment vars

* COMMAND = Command Name/Line vMj = Major Faults delta

PPID = Parent Process pid vMn = Minor Faults delta

UID = Effective User Id USED = Res+Swap Size (KiB)

RUID = Real User Id nsIPC = IPC namespace Inode

RUSER = Real User Name nsMNT = MNT namespace Inode

SUID = Saved User Id nsNET = NET namespace Inode

SUSER = Saved User Name nsPID = PID namespace Inode

GID = Group Id nsUSER = USER namespace Inode

GROUP = Group Name nsUTS = UTS namespace Inode

PGRP = Process Group Id

TTY = Controlling Tty

TPGID = Tty Process Grp Id

SID = Session Id

nTH = Number of Threads

P = Last Used Cpu (SMP)

TIME = CPU Time

SWAP = Swapped Size (KiB)

CODE = Code Size (KiB)

#X:设置任务列表之间的宽度

#L:搜索字段;

#&:搜索下一个字段;

#:显示上一页、下一页

#R:升序或降序显示任务列表;

#H:进程和线程切换;

#V:树形显示,(显示内容没看懂)

#J:字段左对齐或右对齐切换;

#c:程序名和命令行格式切换;

#i:空闲程序显示或隐藏的切换;

#x:高亮显示排序字段;

#y:高亮显示正在运行的任务;

Toggle: ‘z’ color/mono; ‘b’ bold/reverse (only if ‘x’ or ‘y’)

#z:彩色显示或单色显示的切换;

#b:当设置了x或y,即高亮显示时,再加上b,就会将高亮的带背景色;

#u、U:过滤有效或任何用户;

#n、#:设置最多显示的任务数,0表示不限制;

#C:显示坐标;

#k:杀死指定PID的进程;

#r:调整优先级;

#d、s:设置间隔时间;

#W:写入配置文件;

#Y:写入配置文件,并重新加载

#q:退出

3、显示信息详解

top - 15:00:44 up 6 min, 3 users, load average: 0.21, 0.48, 0.30

Tasks: 194 total, 1 running, 193 sleeping, 0 stopped, 0 zombie

%Cpu(s): 12.8 us, 5.1 sy, 0.0 ni, 82.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem: 4046976 total, 1182232 used, 2864744 free, 59872 buffers

KiB Swap: 4191228 total, 0 used, 4191228 free. 462400 cached Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

2308 zet 20 0 1271772 186756 67412 S 7.6 4.6 0:29.29 compiz

1300 root 20 0 373560 108052 31176 S 4.3 2.7 0:08.53 Xorg

2738 zet 20 0 599960 34704 26408 S 4.3 0.9 0:01.74 gnome-terminal

1937 zet 20 0 121840 3208 2836 S 0.7 0.1 0:00.96 VBoxClient

97 root 20 0 0 0 0 S 0.3 0.0 0:00.16 kworker/u2:4

1960 zet 20 0 40196 3512 2164 S 0.3 0.1 0:00.67 dbus-daemon

2835 zet 20 0 30604 3448 2912 R 0.3 0.1 0:00.05 top

1 root 20 0 33792 4312 2684 S 0.0 0.1 0:01.78 init

第一行:top - 15:00:44 up 6 min, 3 users, load average: 0.21, 0.48, 0.30

15:00:44 — 当前系统时间

up 6 min — 系统运行时间(在这期间没有重启过)

3 users — 当前有3个用户登录系统, load average: 0.21, 0.48, 0.30

load average: 0.21, 0.48, 0.30 — load average后面的三个数分别是5分钟、10分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:Tasks: 194 total, 1 running, 193 sleeping, 0 stopped, 0 zombie

Tasks — 任务(进程),系统现在共有194 个进程,其中处于运行中的有1个,193 个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:%Cpu(s): 12.8 us, 5.1 sy, 0.0 ni, 82.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

12.8 us — 用户空间占用CPU的百分比。

5.1 sy — 内核空间占用CPU的百分比。

0.0 ni — 改变过优先级的进程占用CPU的百分比

82.2 id id — 空闲CPU百分比

0.0 wa — IO等待占用CPU的百分比

0.0 hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0 si — 软中断(Software Interrupts)占用CPU的百分比

0.0 st —超级管理进程占用CPU的百分比

第四行:KiB Mem: 4046976 total, 1182232 used, 2864744 free, 59872 buffers

内存使用情况:

4046976 total — 物理内存总量

1182232 used — 使用中的内存总量

2864744 free — 空闲内存总量

59872 buffers — 缓存的内存量

第五行:KiB Swap: 4191228 total, 0 used, 4191228 free. 462400 cached Mem

交换分区:

4191228 total — 交换区总量

0 used — 使用的交换区总量

4191228 free — 空闲交换区总量

462400 cached — 缓冲的交换区总量

第六行:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

各个进程的监控情况:

PID— 进程ID

USER— 进程所有者的实际用户名。

PR— 进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。

NI— 进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT— 进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES— 驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR— SHR是进程使用的共享内存。共享内存大小,单位kb

S— 这个是进程的状态。它有以下不同的值:

D - 不可中断的睡眠态。

R – 运行态

S – 睡眠态

T – 被跟踪或已停止

Z – 僵尸态

%CPU— 自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM— 进程使用的可用物理内存百分比。

TIME+— 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

COMMAND— 运行进程所使用的命令。进程名称(命令名/命令行)

---------------------

2.使用ps命令查看进程

$ ps -ef

……

smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal

smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper

smx 1824 1822 0 11:38 pts/0 00:00:02 bash

smx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin

smx 1857 1822 0 11:38 pts/1 00:00:00 bash

smx 1880 1619 0 11:38 ? 00:00:00 update-notifier

……

smx 11946 1824 0 21:41 pts/0 00:00:00 ps -ef

或者:

$ ps -aux

……

smx 1822 0.1 0.8 58484 18152 ? Sl 11:38 0:49 gnome-terminal

smx 1823 0.0 0.0 1988 712 ? S 11:38 0:00 gnome-pty-helper

smx 1824 0.0 0.1 6820 3776 pts/0 Ss 11:38 0:02 bash

smx 1827 4.3 5.8 398196 119568 ? Sl 11:38 26:13 /usr/lib/firefox-3.6.18/firefox-bin

smx 1857 0.0 0.1 6688 3644 pts/1 Ss 11:38 0:00 bash

smx 1880 0.0 0.6 41536 12620 ? S 11:38 0:00 update-notifier

……

smx 11953 0.0 0.0 2716 1064 pts/0 R+ 21:42 0:00 ps -aux

3.下面演示如何杀死进程

此时如果我想杀了火狐的进程就在终端输入:

$ kill -s 9 1827

其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录。

1827则是上面ps查到的火狐的PID。

简单吧,但有个问题,进程少了则无所谓,进程多了,就会觉得痛苦了,无论是ps -ef 还是ps -aux,每次都要在一大串进程信息里面查找到要杀的进程,看的眼都花了。

进阶篇:

改进1:

把ps的查询结果通过管道给grep查找包含特定字符串的进程。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

$ ps -ef | grep firefox

smx 1827 1 4 11:38 ? 00:27:33 /usr/lib/firefox-3.6.18/firefox-bin

smx 12029 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox

这次就清爽了。然后就是

$kill -s 9 1827

还是嫌打字多?

改进2——使用pgrep:

一看到pgrep首先会想到什么?没错,grep!pgrep的p表明了这个命令是专门用于进程查询的grep。

$ pgrep firefox

1827

看到了什么?没错火狐的PID,接下来又要打字了:

$kill -s 9 1827

改进3——使用pidof:

看到pidof想到啥?没错pid of xx,字面翻译过来就是 xx的PID。

$ pidof firefox-bin

1827

和pgrep相比稍显不足的是,pidof必须给出进程的全名。然后就是老生常谈:

$kill -s 9 1827

无论使用ps 然后慢慢查找进程PID 还是用grep查找包含相应字符串的进程,亦或者用pgrep直接查找包含相应字符串的进程PID,然后手动输入给kill杀掉,都稍显麻烦。有没有更方便的方法?有!

改进4:

$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9

说明:

“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

难道你不想抱怨点什么?没错太长了

改进5:

知道pgrep和pidof两个命令,干嘛还要打那么长一串!

$ pgrep firefox | xargs kill -s 9

改进6:

$ ps -ef | grep firefox | awk '{print $2}' | xargs kill -9

kill: No such process

有一个比较郁闷的地方,进程已经正确找到并且终止了,但是执行完却提示找不到进程。

其中awk '{print $2}' 的作用就是打印(print)出第二列的内容。根据常规篇,可以知道ps输出的第二列正好是PID。就把进程相应的PID通过xargs传递给kill作参数,杀掉对应的进程。

改进7:

难道每次都要调用xargs把PID传递给kill?答案是否定的:

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

改进8:

没错,命令依然有点长,换成pgrep。

$kill -s 9 `pgrep firefox`

改进9——pkill:

看到pkill想到了什么?没错pgrep和kill!pkill=pgrep+kill。

$pkill -9 firefox

说明:"-9" 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 "-s 9",结果每次运行都无法终止进程。

改进10——killall:

killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

$killall -9 firefox

OK,讲到这里大家应该了解了吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值