您的位置:首页 > 运维架构 > Linux

每日掌握一个linux命令 之 进程管理命令 ps

2017-09-24 08:01 567 查看


每日掌握一个linux命令 之 进程管理 ps

问题:
1. 如果你的Linux系统是个很忙碌的系统,那么当整个系统资源快要被使用光时,如何找出最耗系统的那个进程,然后删除该进程,让系统恢复正常?
答:
第一步,找到当前最耗系统的那个进程 :
top  -d  6

第三步,记住第一个进程的PID,(top默认下以CPU使用率排序,所以第一个进程是CPU消耗最多的进程),删除进程
kill -9  PID


2. 如果某个程序写的不好,导致产生一个有问题的进程在内存当中,该如何找出它,然后将它删除呢?
第一步:查看当前系统进程的运行情况
ps aux

第二步:找到CMD后面带<defunct>的的进程,记住它的PID
ps aux | grep 'defunct'

第三步:删除进程
kill  -9  PID


3. 如果同时有五六项工作在你的系统当中运行,但其中有一项工作才是最重要的,该如何让那一项重要的工作被优先执行呢?

第一步:查看当前系统进程的运行情况
ps aux

第二步:记住要优先执行工作的PID/命令名
第三步:调整进程的NI值(全程nice)
renice -9  PID   /   renice  -9  命令名


以下是相关命令的解释:

(1)ps: 全称process status, 静态查看进程命令,也就是,选取一个时间点的进程状态
1. 查看系统所有的进程数据 
ps aux

2. 查看所有系统的数据   
ps -lA

3. 查看连同进程树状态   
ps  axjf

4. 查看自己的bash相关进程   

ps -l

参数:
-A : 所有进程都被显示出来,与-e 具有相同的作用
-a: 不与terminal有关的所有进程
-u : 有效用户相关的进程
X: 通常与a这个参数一起使用,可列出完整信息
输出格式规划:
i : 较长、较仔细地将该PID的信息列出
j : 工作的格式

-f : 做一个更为完整的输出
若出现僵尸进程(保存在内存中问题的进程),则在该进程的CMD后面会接上<defunct>

(2) top : 动态查看进程状态,也就是,可以持续检测进程运行的状态

top  [-d 数字]  |  top  [-bnp]        例如: top -d 2

参数:
-d : 后面可以接秒数,默认下是5秒
-b : 以批次的方式执行top,还有的参数可以使用,通常会搭配数据流重定向来将批处理结果输出为文件
-n:  与-b搭配,意义是,需要进行几次top的输出结果
-p: 指定某些个PID来进行查看检测而已
top命令默认下使用CPU使用率(%CPU)作为排序的重点,若想使用内存使用率排序,则可以按下“M”,若想恢复,则按下“P”
若出现僵尸进程,在显示数据的第二行中的zombie一项不为0

(3)删除某个进程:

kill  -9  PID | 进程命令名称        例如: kill  -9  httpd

删除某个服务:

killall  -9  进程的命令名称        例如: killall  -9  -bash        《==系统会将系统中所有以某个命令名称启动的进程全部删除

说明:
-signal:
-9 : 中断一个进程的进行
-1: 启动被终止的进程,可让PID重新读取自己的配置文件,类似于重启动
-2:相当于用键盘ctrl+c来中断一个进程的进行
-15: 以正常的结束进程来终止该进程
-17:相当于用键盘输入ctrl+z来暂停一个进程的进行

(4)调整nice值
对于即将要被执行的命令,调整nice
nice   [-n 数字]  command          例如:  nice   -n  -5  vi

对于已存在进程的nice重新调整
renice  [number]  PID              例如:  renice  10  18625

说明:
数字/number : 取值范围: -20~19
内核是通过PRI值(priority)来调整进程的运行顺序,PRI由内核动态调整,用户无法直接调整PRI值,用户只能通过调整NI值(全称nice)来间接调整PRI值,PRI值越小,优先级越大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux ps