Linux中关于进程管理的命令

目录

1、概述

2、相关命令

2.1、ps命令

2.2、top命令

2.3、pidof命令

2.4、nice命令

2.5、kill命令

2.6、killall命令

2.7、sleep命令

2.8、pstree命令


1、概述


  Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。

进程最根本的属性是动态性并发性。进程是有生存期的,其动态性是由其状态转换决定的。

2、相关命令


2.1、ps命令

(1)一般格式: 

ps [选项]

(2)功能介绍:

ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。

通常,有些Linux版本中的ps命令采用三种风格的选项:UNIX风格、BSD风格和GNU风格。UNIX风格在选项字母前必须加一个“ - ”,BSD风格在选项字母前面没有“ - ”,而GNU风格在选项字符串前面需要添加两个“ - ”。

(3)常用选项:

-a显示系统中与tty相关的(除了会话组长)所有进程信息。
aBSD风格,显示系统中与tty(当前正在使用的终端文件)相关的所有进程信息;当与选项x一起使用时,显示所有进程的信息。
-A显示所有程序
-e显示所有程序,等同于”-A”选项
-f显示进程的所有信息,即UID、PID、PPID、C、STIME、TTY、TIME、CMD
-l以长格式显示进程信息
r只显示正在运行的进程
u以面向用户的格式来显示程序状况。(包括用户名、CPU及内存使用情况等信息)
-U <用户识别码>列出属于该用户的程序的状况,也可使用用户名称来指定
U <用户名称>列出属于该用户的程序的状况
xBSD风格,显示所有非控制终端上的进程信息;当与选项a一起使用时,显示所有进程信息。
--pid pidlist显示由进程ID(出现在参数pidlist表中)指定进程的信息。
-c新增显示CLS和PRI栏位
-C <指令名称>指定执行指令的名称,并列出该指令的进程状况
--tty ttylist显示指定终端上进程的信息,等价于-t和t

(4)注意:

PID:进程标志号。

TTY:该进程建立时所对应的终端,“ ? "表示该进程不占用终端。

TIME:报告进程累计使用CPU时间。尽管有些命令已经运转了很长时间,但是他们真正使用CPU的时间往往很短,所以该字段的值往往是00:00:00

CMD:执行进程的命令名,是command的缩写。

UID:进程的用户ID

PPID:父进程的ID

C:进程最近使用CPU的估算

STIME:进程开始时间,以“ 小时:分 ”的形式给出。

USER:启动进程的用户

%CPU:运行该进程占用CPU的时间与该进程总的运行时间的比例

%MEM:该进程占用内存和总内存的比例

VSZ:虚拟内存的大小,以KB为单位

RSS:任务使用的不被交换物理内存的数量,以KB为单位

STAT:进程的运行状态,由下面的字符表示:

  • R(运行):进程正在运行或就绪(在运行队列中等待)。

  • S(中断):进程处于可中断睡眠状态,当某个条件形成后或者接收到信号时(等待要完成的事件),则脱离该状态。

  • D(不可中断):进程处于不可中断睡眠状态,进程不响应系统异步信号,即便用kill命令也不能将其中断。

  • T(停止):进程停止运行状态,由于作业控制信号或者被跟踪。

  • Z(僵死):进程已经终止,但进程描述符依然存在,还没有被其父进程回收, 直到父进程调用wait()系统函数后将进程释放。

若采用了BSD风格并且用户在命令中定义了STAT关键字,则会添加以下字符:

  • <:高优先权的进程
  • N:低优先权的进程
  • L:有锁入内存的页面(用于实时任务或I/O任务)
  • START:进程开始的时间或者日期,一般以“ HH:MM ”格式显示。

(5)示例:

ps        (列出每个与当前shell有关的进程的基本信息,如下图所示)

ps -c        (在ps显示基础上新增显示CLS和PRI栏位,如下图所示)

ps aux        (显示所有终端上所有用户的有关进程的所有信息,如下图所示)

ps -f --pid 1,2,3        (显示PID为1、2、3进程的所有信息)

2.2、top命令

(1)一般格式: 

top [选项]

(2)功能介绍:

top命令(性能分析工具)用于实时动态地监视进程活动及系统负载等信息,输入该命令后按回车键执行即可。

前面介绍的命令只是静态查看,而top命令可以实时刷新数据并显示,相当于Windows系统中的任务管理器。

(3)常用选项:

-d改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c 切换显示模式
-s安全模式,将交谈式指令取消, 避免潜在的危机
-i不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n更新的次数,完成后将会退出 top
-b批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

(4)注意:

分析显示结果:

 top命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下:

  1. 系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

  2. 进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

  3. 用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲。

  4. 物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。

  5. 虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。

PR和NI值代表的是进程的优先级,数字越低(取值范围是-20~19),优先级越高。

(5)示例:

top -n 3        (刷新3次后自动退出top命令)

2.3、pidof命令

(1)一般格式: 

pidof [选项] [进程名称(命令)]

(2)功能介绍:

每个进程的进程号码值(PID)是唯一的,可以用于区分不同的进程。pidof命令用于查询某个指定服务进程的PID号码值。

(3)常用选项:

-s当系统中存在多个同名进程时,仅返回一个进程ID
-c仅返回当前正在运行且具有同一根目录的进程PID
-x返回指定运行脚本的shell进程PID
-o忽略具有指定进程ID的进程

(4)注意:

(5)示例:

pidof sshd        (查询本机上sshd服务程序的PID,如下图所示)

2.4、nice命令

(1)一般格式: 

nice [选项] [进程名称(命令)]

(2)功能介绍:

nice命令用于调整进程的优先级.

(3)常用选项:

-n,--adjustment=N后面接一个数值,范围在-20~19.默认是10

(4)注意:

nice取值范围是-20~19,数值越小优先级越高。注意,只有root用户才能通过指定nice值为负整数,普通用户(具有相应的权限)指定的值只能是正整数。

(5)示例:

用户使用find命令在当前目录及其子目录中查找所有的C程序源文件,可能要花费较长的时间。为了能同时处理其他工作,可以降低find命令的优先级,让它在后台运行(在末尾添加一个&符号,这样命令将进入系统后台来执行)。

nice -n 15 find . -name *.c -print&

2.5、kill命令

(1)一般格式: 

kill [选项] [PID或信号]

(2)功能介绍:

kill命令用于终止指定PID的服务进程或进程组。

Ctrl+c可以终止一个前台进程,但是后台进程必须使用kill命令来终结。

kill命令可将指定的信号发送给相应的进程或进程组。 kill命令默认发送编号为15的TERM信号,TERM信号将终止所有不能捕获该信号的进程。那些能捕获该信号的进程或进程组,要用编号为9的kill信号,强制杀死进程或进程组。

(3)常用选项:

-s,--signal signal指定需要发送的信号signal,该信号可以是信号名(如KILL),也可以是对应信号的号码(如9)。
-p,--pid指定kill命令只显示相关进程的进程号,而不发送任何信号
-l,--list [number]列出系统支持的信号名称
-a处理当前进程时不限制命令名和进程号的对应关系

(4)注意:

普通用户只能使用不带信号参数的kill命令或者至多使用信号9.

只有进程的主人才能向这些进程发出kill信号。若在没有权限情况下使用kill命令或者kill一个不存在的命令时,会得到一个错误信号。

可以向多个进程发信号或终止他们。

当kill命令成功的发送了信号,shell会在屏幕上显示进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell命令提示符再次出现时,才会显示出来。

强制终止进程,这常会带来一些副作用,如数据丢失或终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才会使用KILL信号(9),因为进程不能首先捕获他。

(5)示例:

kill -l        (显示信号名称列表,如下图所示)

 kil -s 2 123                (等效于在前台运行PID为123的进程时按下Ctrl+c键)

kill 0        (撤销所有的后台作业)

kill 145        (结束PID为145的进程)

2.6、killall命令

(1)一般格式: 

kill [选项] [服务名称]

(2)功能介绍:

killall命令用于终止某个指定名称的服务所对应的全部进程。

通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果用kill命令逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务程序带有的全部进程。

(3)常用选项:

-e对长名称进行精确匹配
-l打印所有已知信号列表
-p杀死进程所属的进程组
-i交互式杀死进程,杀死进程前需要进行确认
-r使用正规表达式匹配要杀死的进程名称
-s用指定的进程号代替默认信号“SIGTERM”
-u杀死指定用户的进程

(4)注意:

(5)示例:

killall httpd        (杀死httpd所有进程)

2.7、sleep命令

(1)一般格式: 

sleep [选项]

(2)功能介绍:

sleep可以使当前进程暂停执行一段时间。此命令大多用于shell程序设计中,使两条命令执行之间停顿指定的时间。

(3)常用选项:

--help显示辅助讯息
--version显示版本编号
时间值时间长度,默认情况下,“时间值”参数以秒为单位,后面可接 s:秒、m:分、h:小时 、d:日数

(4)注意:

(5)示例:

sleep 5m        (休眠5分钟)

date "+%H:%M:%S" ; sleep 1m ; date "+%H:%M:%S"       (显示目前时间后,延迟 1 分钟,再次显示时间)

sleep 30;who | grep 'mengqc'        (使进程先暂停100秒,然后查看用户mengqc是否在系统中)

2.8、pstree命令

(1)一般格式:

 pstree [选项]

(2)功能介绍:

pstree命令用于以树状图的形式展示进程之间的关系,英文全称为“process tree”,输入该命令后按回车键执行即可。

(3)常用选项:

-a显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c不使用精简标示法
-G使用VT100终端机的列绘图字符
-h列出树状图时,特别标明现在执行的程序

(4)注意:

(5)示例:

pstree        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值