Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示

ps:将某个时间点的进程运行情况撷取下来

[[email protected] ~]# ps aux  <==观察系统所有的进程数据
[[email protected] ~]# ps -lA  <==也是能够观察所有系统的数据
[[email protected] ~]# ps axjf <==连同部分进程树状态
选项与参数:
-A  :所有的 process 均显示出来,与 -e 具有同样的效用;
-a  :不与 terminal 有关的所有 process ;
-u  :有效使用者 (effective user) 相关的 process ;
x   :通常与 a 这个参数一起使用,可列出较完整资讯。
输出格式规划:
l   :较长、较详细的将该 PID 的的资讯列出;
j   :工作的格式 (jobs format)
-f  :做一个更为完整的输出。

ps -l  仅观察自己的bash相关程序

eg1:将目前属于自己这次登录的PID与相关咨询列出来(只与自己的bash有关)

使用ps -l 仅列出与你的bash有关的进程而已,ps -l 显示的数据有:

F:代表这个进程标识 (process flags),说明这个进程的总结权限,常见号码有:

若为 4 表示此进程的权限为 root ;

若为 1 则表示此子进程仅进行复制(fork)而没有实际运行(exec)。

S:代表这个进程的状态 (STAT),主要的状态有:

R (Running):该进程正在运行中;

S (Sleep):该进程目前正在睡眠状态(idle),但可以被唤醒(signal)。

D :不可被唤醒的睡眠状态,通常这支进程可能在等待 I/O 的情况(ex>列印)

T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态;

Z (Zombie):僵尸状态,进程已经终止但却无法被移除至内存外。

UID/PID/PPID:代表『此进程被该 UID 所拥有/进程的 PID 号码/此进程的父进程 PID 号码』

C:代表 CPU 使用率,单位为百分比;

PRI/NI:Priority/Nice 的缩写,代表此进程被 CPU 所运行的优先顺序,数值越小代表该进程越快被 CPU 运行。

ADDR/SZ/WCHAN:都与内存有关,ADDR 是 kernel function,指出该程序在内存的哪个部分,如果是个 running 的程序,一般就会显示『 - 』 / SZ 代表此程序用掉多少内存 / WCHAN 表示目前程序是否运行中,同样的, 若为 - 表示正在运行中。

TTY:登陆者的终端机位置,若为远程登陆则使用动态终端介面 (pts/n);

TIME:使用掉的 CPU 时间,注意,是此进程实际花费 CPU 运行的时间,而不是系统时间;

CMD:就是 command 的缩写,造成此进程的触发进程之命令为何。

ps aus  观察系统所有进程

eg2:列出目前所有的正在内存当中的进程:

。。。

ps -l和ps aux显示的项目并不相同!在ps aux显示的项目中,每个意义为:

USER:该 process 属於那个使用者帐号的?

PID :该 process 的进程识别码。

%CPU:该 process 使用掉的 CPU 资源百分比;

%MEM:该 process 所占用的实体内存百分比;

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运行,若与终端机无关则显示 ?,另外, tty1-tty6 是本机上面的登陆者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该进程目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)

START:该 process 被触发启动的时间;

TIME :该 process 实际使用 CPU 运行的时间。

COMMAND:该进程的实际命令为何?

ps -lA  显示所有的进程,显示方式与ps -l的输出情况相同

ps axjf  列出类似进程树的程序显示:

top:动态观察程序的变化

[[email protected] ~]# top [-d 数字] | top [-bnp]
选项与参数:
-d  :后面可以接秒数,就是整个进程画面升级的秒数。默认是 5 秒;
-b  :以批量的方式运行 top ,还有更多的参数可以使用喔!
      通常会搭配数据流重导向来将批量的结果输出成为文件。
-n  :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p  :指定某些个 PID 来进行观察监测而已。
在 top 运行过程当中可以使用的按键命令:
	? :显示在 top 当中可以输入的按键命令;
	P :以 CPU 的使用资源排序显示;
	M :以 Memory 的使用资源排序显示;
	N :以 PID 来排序喔!
	T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
	k :给予某个 PID 一个讯号  (signal)
	r :给予某个 PID 重新制订一个 nice 值。
	q :离开 top 软件的按键。

top 主要分为两个画面,上面的画面为整个系统的资源使用状态,基本上总共有六行,显示的内容依序是:

第一行(top...):这一行显示的资讯分别为:

目前的时间,亦即是 18:30:00 那个项目;

启动到目前为止所经过的时间,亦即是 up 4:17 那个项目;

已经登陆系统的使用者人数,亦即是 2 user项目;

系统在 1, 5, 15 分钟的平均工作负载。代表的是 1, 5, 15 分钟,系统平均要负责运行几个程序(工作)的意思。 越小代表系统越闲置,若高於 1 得要注意你的系统进程是否太过繁复了!

第二行(Tasks...):显示的是目前进程的总量与个别进程在什么状态(running, sleeping, stopped, zombie)。 比较需要注意的是最后的 zombie 那个数值,如果不是 0 !好好看看到底是那个 process 变成僵尸了吧?

第三行(Cpus...):显示的是 CPU 的整体负载,每个项目可使用 ? 查阅。需要特别注意的是 wa ,那个项目代表的是 I/O wait, 通常你的系统会变慢都是 I/O 产生的问题比较大!因此这里得要注意这个项目耗用 CPU 的资源喔! 另外,如果是多核心的设备,可以按下数字键『1』来切换成不同 CPU 的负载率。

第四行与第五行:表示目前的实体内存与虚拟内存 (Mem/Swap) 的使用情况。 再次重申,要注意的是 swap 的使用量要尽量的少!如果 swap 被用的很大量,表示系统的实体内存实在不足!

第六行:这个是当在 top 程序当中输入命令时,显示状态的地方。

至於 top 下半部分的画面,则是每个 process 使用的资源情况。比较需要注意的是:

PID :每个 process 的 ID 啦!

SER:该 process 所属的使用者;

PR :Priority 的简写,进程的优先运行顺序,越小越早被运行;

NI :Nice 的简写,与 Priority 有关,也是越小越早被运行;

%CPU:CPU 的使用率;

%MEM:内存的使用率;

TIME+:CPU 使用时间的累加;

top 默认使用 CPU 使用率 (%CPU) 作为排序的重点,如果你想要使用内存使用率排序,则可以按下『M』, 若要回复则按下『P』即可。如果想要离开 top 则按下『 q 』

eg:自己的bash PID可由变量$$获得,使用top持续观察这个PID

ptree

[[email protected] ~]# pstree [-A|U] [-up]
选项与参数:
-A  :各进程树之间的连接以 ASCII 字节来连接;
-U  :各进程树之间的连接以万国码的字节来连接。在某些终端介面下可能会有错误;
-p  :并同时列出每个 process 的 PID;
-u  :并同时列出每个 process 的所属帐号名称。

eg:列出目前系统上所有的进程树的相关性

eg:同时显示PID和users

在括号 () 内的即是 PID 以及该程序的 owner 喔!不过,由於我是使用

root 的身份运行此一命令,所以属於 root 的程序就不会显示出来啦!

进程的管理

进程之间是可以互相控制的!举例来说,你可以关闭、重新启动服务器软件,服务器软件本身是个程序, 你既然可以让她关闭或启动,当然就是可以控制该进程啦!那么进程是如何互相管理的呢?其实是透过给予该进程一个讯号 (signal) 去告知该进程你想要让她作什么!

那么到底有多少 signal 呢? 你可以使用 kill -l (小写的 L ) 或者是 man 7 signal 都可以查询到!

主要的讯号代号与名称对应及内容是:

代号 名称 内容
1 SIGHUP 启动被终止的进程,可让该 PID 重新读取自己的配置档,类似重新启动
2 SIGINT 相当於用键盘输入 [ctrl]-c 来中断一个进程的进行
9 SIGKILL 代表强制中断一个进程的进行,如果该进程进行到一半, 那么尚未完成的部分可能会有『半产品』产生,类似 vim会有 .filename.swp 保留下来。
15 SIGTERM 以正常的结束进程来终止该进程。由於是正常的终止, 所以后续的动作会将他完成。不过,如果该进程已经发生问题,就是无法使用正常的方法终止时, 输入这个 signal 也是没有用的。
17 SIGSTOP 相当於用键盘输入 [ctrl]-z 来暂停一个进程的进行

kill -signal PID

kill 可以帮我们将这个 signal 传送给某个工作 (%jobnumber) 或者是某个 PID (直接输入数字)。 要再次强调的是: kill 后面直接加数字与加上 %number 的情况是不同的! 这个很重要喔!因为工作控制中有 1 号工作,但是 PID 1 号则是专指『 init 』这支进程!你怎么可以将 init 关闭呢? 关闭 init ,你的系统就当掉了啊!所以记得那个 % 是专门用在工作控制的喔!

了解了这个用法以后,如果未来你想要将某个莫名其妙的登陆者的连线删除的话,就可以透过使用 pstree -p 找到相关程序, 然后再以 kill -9 将该程序删除,该条连线就会被踢掉了!

killall -signal 命令名称

[[email protected] ~]# killall [-iIe] [command name]
选项与参数:
-i  :interactive 的意思,互动式的,若需要删除时,会出现提示字节给使用者;
-e  :exact 的意思,表示『后面接的 command name 要一致』,但整个完整的命令
      不能超过 15 个字节。
-I  :命令名称(可能含参数)忽略大小写。

eg:一次询问每个bash进程是否需要被终止运行!

总之,要删除某个进程,我们可以使用 PID 或者是启动该程序的命令名称, 而如果要删除某个服务呢?呵呵!最简单的方法就是利用 killall , 因为他可以将系统当中所有以某个命令名称启动的程序全部删除。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 20:01:47

Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示的相关文章

linux进程管理——ps、优先级、核心绑定

Ps:查看系统进程 user:有效用户 PID:进程编号 %cpu:cpu占用率 %men:内存占用率 VSZ:Virtual Memory Size 向系统申请的内存,虚拟内存集,线性内存 单位:K RSS:实际使用内存(常驻内存) 单位:K TTY:使用终端窗口 STAT:当前状态 R:running S:interruptable sleeping(休眠状态) D:uninterruptable sleeping(不可中断休眠) T:stopped(停止进程) Z:zombie(僵尸进程)

Linux 进程管理命令ps、top、kill、nice、fg、bg、vmstat、uptime

Linux 进程管理命令: ps process status 查看进行相关信息: system 风格:sysv  有-线引导 BSD风格:BSD ps a:显示所有跟终端有关的进程 u:显示更详细的字段 x:显示所有跟终端无关的进程 常用 ps ax 进程分类: 终端启动(相关)的进程:用户通过命令行启动的进程 跟终端无关的进程:系统启动就自己启动 进程状态: D: 表示不可中断的睡眠 R:表示就绪态 S:表示可中断的睡眠 T:停止 Z:僵死态 <:高优先级进程 N:低优先级进程 +:前台进程

Linux进程管理四大工具ps \dstat\ top\ htop

Linux进程管理之“四大名捕” 一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”.内功卓越的高手“铁手”.腿功惊人的“追命”和剑法一流的“冷血”本文四大名捕由linux命令所出演      无情:ps     出演      铁手:dstat  出演      追命:top    出演      冷血:htop   出演 二.进程相关基础知识 介绍四大名捕之前先介绍一下进程相关的基础知识,话不多说,看图. 三.

Linux进程管理之ps的使用

主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state  进程状态ps - report a snapshot of the current processesLinux系统各进程的相关信息均保存在/proc/PID目录下的各文件中 默认显示的内容很少 [[email protected] ~]# ps PID TTY TIME CMD 2018 pts/0 00:00:00 bash 2656 pts/0 00:00:00 ps [[email prote

Linux进程管理工具之top,htop,glances,dstat

借助于本次课程学习外加查阅网上资料,特针对top,glances.dstat做简单介绍. 接触过linux的人都会知道,刚才所述的几个都是与windows中任务管理器一样,只需在命令行中键入这几种命令,就可以定时刷新显示当前系统上各设备使用情况.比如CPU占用百分比.负载,硬盘读写速率,网络传输情况. top 其中显示的从上到下,从左到右各个的含义为: top:当前系统时间: up:系统运行时长: user:当前登陆的用户数: load average:平均负载(逗号隔开的三个数分别为过去一分钟

Linux进程管理简谈

Linux系统进程管理简谈 进程是什么? 简单来说进程是一个正在执行的程序的一个副本,存在生命周期,有段指令和代码在不断运行. linux内核存储信息的固定格式:task struct 进程的相关信息存储在链表中 多个任务的task struct组件的链表:task list 进程的创建:父进程创建子进程(内核创建init进程,剩余一切进程有init及其子进程进程创建) 父进程创建子进程时向内核调用fork()来创建子进程并且通过调用clone()复制父进程的信息给子进程 Linux进程的优先级

linux进程管理命令总结

linux进程管理的相关命令: 1.pstree  --以树状形式显示当前系统进程,和命令tree相似. 2.ps命令 命令格式:ps [options] 常用组合:aux: u:以用户为中心组织的进程状态信息显示 a:与终端相关的进程 x:与终端无关的进程 #ps aux USER : 用户名 PID : 进程号 %CPU :占用的cpu百分比 %MEM  :内存的使用率 VSZ :  virtual memory size ,虚拟内存集 RSS : resident size ,常驻内存集

linux进程管理与SELinux

http://blog.csdn.net/pipisorry/article/details/23376005 工作管理job control 登陆 bash 后, 想要一边复制文件.一边进行数据搜寻.一边进行编译,还可以一边进行 vim 程序撰写! 当然我们可以重复登陆那六个命令行的终端机环境中,不过,也能在一个 bash 内达成. job control 的管理 直接将指令丢到背景中"执行"的 & 将"目前"的工作丢到背景中"暂停":

linux进程管理及计划任务

什么是进程? 在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置. 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在. 进程(process):程序被触发后,执行者的权限与属性.程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),可以说,进程就是一个正在运行中的程序. 进程I