Linux进程管理

文章详细介绍了Linux系统的进程管理,包括使用ps命令查看进程信息,如CPU和内存占有率,进程状态,以及如何通过ps进行进程排序。另外,还讲解了top命令用于动态监控进程,kill命令发送信号控制进程,以及作业控制在后台运行程序的方法。文章涵盖了从基础的进程查看到高级的进程控制技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程管理

进程是已启动的可执行程序示例,进程的特性有以下
1.已分配内存地址
2.安全属性:有其所有权凭据特权
3.一个或多个线程
4.进程状态:运行,休眠,暂停,僵死等状态
5.生命周期

在Linux不同版本系统进程都不相同
Centos5/6:init
Centos7:systemd
Centos:/usr/lib/systemd/systemd

查看静态进程及信息各字段含义

ps aux是Linux中查看静态进程属性的指令

ps aux | head -2 #查看进程头两行
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  1.0  0.9 172404 16388 ?        Ss   23:34   0:01 /usr/lib/syst
项目Value
USER运行进程的用户
PID进程的ID
%CPU进程的CPU占有率
%MEM进程的内存占有率
VSZ占用虚拟内存
RSS占用实际内存
TTY进程运行的终端
STAT进程状态
START进程的启动时间
TIME进程占用CPU的总时间
COMMAND进程文件,进程名

进程排序

ps aux --sort %cpu #按进程CPU占有率降序进行排序
ps aux --sort -%cpu #按进程CPU占有率升序进行排序

ps aux --sort %cpu | head -3
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           2  0.0  0.0      0     0 ?        S    23:34   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   23:34   0:00 [rcu_gp]
ps aux --sort -%cpu | head -3
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        2288  1.3 15.5 3515412 279560 ?      Ssl  23:36   0:07 /usr/bin/gnome-shell
root        2454  0.3  0.5 240724 10080 ?        Ss   23:36   0:01 /usr/libexec/sssd/sssd_kcm --uid 0 --gid 0 --logger=files

查看进程父子关系

ps -ef
从PPID:0生成PID:2
从PPID:2生成PID:3

ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           2       0  0 22:01 ?        00:00:00 [kthreadd]
root           3       2  0 22:01 ?        00:00:00 [rcu_gp]
root           4       2  0 22:01 ?        00:00:00 [rcu_par_gp]

自定义显示字段

语法:ps axo 需要显示字段

ps axo user,pid,ppid,%mem,command |head -3 
USER         PID    PPID %MEM COMMAND
root           1       0  0.3 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root           2       0  0.0 [kthreadd]

动态查看进程top

在这里插入图片描述

top						#正常查看
top -d 1				#每秒刷新一次top
top -d 1 -p 10126		#每秒刷新一次查看指定程序

us — 用户空间占用CPU的百分比。
sy — 内核空间占用CPU的百分比。
ni — 改变过优先级的进程占用CPU的百分比
id — 空闲CPU百分比
wa — IO等待占用CPU的百分比
hi — 硬中断(Hardware IRQ)占用CPU的百分比
si — 软中断(Software Interrupts)占用CPU的百分比

使用信号控制进程kill

给进程发送信号(kill -l列出所有支持的信号)
[root@localhost ~]# kill -9
编号 信号名
1 SIGHUP 重新加载配置
2 SIGINT 键盘中断Ctrl+C
3 SIGQUIT 键盘退出Ctrl+\,类似SIGINT
9 SIGKILL 强制终止,无条件
15 SIGTERM 终止(正常结束),缺省信号
18 SIGCONT 继续
19 SIGSTOP 暂停
20 SIGTSTP 键盘暂停Ctrl+Z

作业控制jobs

作业控制是一个命令行功能,也叫后台运行。
foreground->fg->前台进程:是在终端中运行的命令,占领终端。
background->bg->后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。

[root@localhost ~]# sleep 3000 &		#运行后台程序
[root@localhost ~]# ps aux | grep sleep	#ps查询所有程序。
root 8895 0.0 0.0 100900 556 pts/0 S 12:13 0:00 sleep 3000
[root@localhost ~]# jobs				#jobs查看后台进程。
[1]+ Running sleep 3000 &
[root@localhost ~]# fg  1 				#将作业1调回到前台
[root@localhost ~]# kill  %1			#消灭后台进程

总结:
& 后台运行程序
jobs 查询后台
kill %1 停止后台进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弘雷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值