linux系统管理之进程管理

2 linux系统管理之进程管理

2.1 进程

名称含义
程序安装包,程序代码,app,存放在磁盘上
进程运行起来的服务、程序、命令等,运行在内存中的
守护进程一直运行的进程,也叫服务

2.2 进程的分类(异常进程)

1)僵尸进程⭐️⭐️⭐️

​ 解析:当子进程比父进程先结束,而父进程还没来得及回收子进程的资源,释放它的资源,这个子进程就叫僵尸进程

  • 进程因某些原因挂了,但进程任然存在系统中占用着资源,就叫僵尸进程

  • 查找僵尸进程

    • ps aux过滤 Z状态进程
    • top命令查看僵尸进程的数量
  • 解决方法

    • 找出僵尸进程的父进程,终止它
    • 如果僵尸进程的父进程是主进程(PID 0),需要重启linux系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RTSh5n3v-1671277043376)(E:\学习\老男孩云计算linux-85期培训\image\linux系统管理之软件包管理\image-20221216155753408.png)]

2)孤儿进程
  • 解析:其父进程执行完成或被中止后任然运行的进程
  • 孤儿进程会被主进程(system)直接接管

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bZfvBd2g-1671277043377)(E:\学习\老男孩云计算linux-85期培训\image\linux系统管理之软件包管理\image-20221216155841894.png)]

3)模拟僵尸进程
  • 通过gcc生成僵尸进程
1 生产僵尸进程文件
[root@hecs-225798 ~]# gcc zombine.c -o zombine
[root@hecs-225798 ~]# ll
total 16
-rwxr-xr-x 1 root root 8608 Dec 16 20:04 zombine
-rw-r--r-- 1 root root  591 Dec 16 19:59 zombine.c

2 执行僵尸进程
[root@hecs-225798 ~]# ./zombine 
I am parent,26555
sleep....
I am child,26556
Child exits

3 top查看僵尸进程数量
Tasks:  75 total,   1 running,  73 sleeping,   0 stopped,   1 zombie

4 ps过滤Z状态进程
[root@hecs-225798 ~]# ps aux|grep Z
root     26556  0.0  0.0      0     0 pts/0    Z+   20:04   0:00 [zombine] <defunct>
root     26604  0.0  0.0 112812   960 pts/1    R+   20:07   0:00 grep --color=auto Z

5 pstree -p查看僵尸进程的父进程的PID
[root@hecs-225798 ~]# pstree -p
systemd(1)─┬─NetworkManager(524)─┬─dhclient(605)
           │                     ├─{NetworkManager}(570)
           │                     └─{NetworkManager}(573)
		...省略...
           ├─sshd(1726)─┬─sshd(26447)───bash(26458)───zombine(26555)───zombine(26556)

6 直接终止僵尸进程
kill 26556
失败,无法终止

7 终止僵尸进程的父进程
kill 26555 
[root@hecs-225798 ~]# ./zombine 
I am parent,26555
sleep....
I am child,26556
Child exits
Terminated
成功!

2.3 进程监控指令

  • linux常见的进程监控命令
监控命令说明
ps静态:ps查看当前瞬间进程状态,一般用于临时检查或取值
top动态:top动态,交互,整体查看系统状态,负载,僵尸进程,cpu,内存. 类似于windows任务管理器
1)ps命令格式
a)概述
  • ps -ef
    • UID 进程属于哪个用户
    • PID 进程id
    • PPID 父进程id
    • CMD 进程名字
  • ps aux
    • 比-ef多了一些,cpu使用率,内存使用率,占用内存大小,进程状态
b)ps aux命令输出详解⭐️⭐️⭐️
列名说明
User进程属于用户
PID进程号(子进程号)
%CPUcpu使用率.
%MEM内存使用率
VSZ进程占用虚拟内存大小 (KB)
RSS进程占用物理内存大小 (KB)
TTY用户使用终端(用户连接进来后,系统创建)
STAT进程状态
START进程启动时间.
TIME进程占用CPU时间.
COMMAND进程名字(命令,选项 .) []括起来的是内核进程(无法终止), 其他是系统进程 systemd是第1个进程.
c)进程状态⭐️⭐️⭐️
  • 进程状态:运行的进程、僵尸进程、io进程、前台与后台进程
  • 进程状态=基本状态+附加状态
STAT基本状态说明
R(running)运行中的进程(后台)
S可中断进程(可以随时停止)
T挂起/暂停的进程
D不可中断的进程(正在io读取)
Z僵尸进程
STAT附加状态(了解)描述
s控制进程, Ss进程的领导者,父进程/主进程
<进程运行在高优先级上,S<优先级较高的进程
N进程运行在低优先级上,SN优先级较低的进程
+当前进程运行在前台,R+该表示进程在前台运行
l进程是多线程的,Sl表示进程是以线程方式运行
  • 常见的进程状态
    • R+ 前台运行中进程
    • R 后台运行进程
    • S 可中断进程
    • T 后台挂起的进程
    • D 不可中断进程
    • S< 可中断的高优先级进程
    • Ss 可中断管理进程
    • Z 僵尸进程
    • Ssl 可中断的多线程的管理进程
2)top命令格式
  • top命令默认是个交互式的命令,可以展示系统负载信息,进程信息,cpu,内存信息。

image-20221216213731524

3)进程管理案例
a)过滤进程
[root@hecs-225798 ~]# ps -ef|grep crond
root      1731     1  0 09:54 ?        00:00:00 /usr/sbin/crond -n
root     27740 27588  0 21:41 pts/0    00:00:00 grep --color=auto crond

排查grep自身进程
[root@hecs-225798 ~]# ps -ef|grep crond |grep -v grep
root      1731     1  0 09:54 ?        00:00:00 /usr/sbin/crond -n

b)树形查看进程

pstree

pstree -p 树形查看进程,并显示pid

c)配合awk取出指定值
取出第一列的值
ps aux | awk  '{print $1}'
取出第一和第三列的值
ps aux | awk  '{print $1,$3}'
不显示第一行标题
pa aux|awk 'NR>1{print $1}'
NR>1 行号大于1的行
输出指定列的内容
ps axo user,pid,ppid,command

👉 ps axo指定列显示,参数是标题的小写字母

d)ps自带选项过滤进程
[root@hecs-225798 ~]# ps --no-heading  -o pid,%cpu,%mem,command  -C crond
 1731  0.0  0.0 /usr/sbin/crond -n

--no-heading  不显示标题
-C  过滤,注意不要加上ax选项
-o  指定列输出
e)top基础使用和快捷键

#基础必会用法 q 退出

默认3秒刷新1次, 空格立刻刷新.

P 默认按照CPU使用率排序

M 按照内存使用率排序

#进阶用法:

top输入z进入颜色模式

按 x 标记出当前是按照哪列排序.

<- 向左 方向键 --> 向右

#top命令升级版,支持鼠标操作 htop

d)ps自带选项过滤进程
[root@hecs-225798 ~]# ps --no-heading  -o pid,%cpu,%mem,command  -C crond
 1731  0.0  0.0 /usr/sbin/crond -n

--no-heading  不显示标题
-C  过滤,注意不要加上ax选项
-o  指定列输出
e)top基础使用和快捷键

#基础必会用法 q 退出

默认3秒刷新1次, 空格立刻刷新.

P 默认按照CPU使用率排序

M 按照内存使用率排序

#进阶用法:

top输入z进入颜色模式

按 x 标记出当前是按照哪列排序.

<- 向左 方向键 --> 向右

#top命令升级版,支持鼠标操作 htop

f)非交互模式
  • 未来想获取top命令的结果,指标,需要让top运行在非交互模式
top  -bn1 |awk 'NR =2'
-b  非交互模式
-n1 只输出1次结果.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值