Linux进程管理

1 进程

进程有以下组成部分:
已分配内存的地址空间
安全属性,包括所有权凭据和特权
 程序代码的一个或多个执行线程
进程状态

 

每个进程都有唯一的进程标识PID,一个PID只能标识一个进程,PPID为父进程ID,需要给该进程分配系统资源。

 

进程状态:

就绪态:进程已经做好准备,只有有机会就会开始执行。

运行态:该进程正在执行。

阻塞态:进程在某些事件发生前不能执行,如I/O操作完成。

 

2 查看进程

静态查看进程

ps(process缩写:进程)命令是用来查看目前系统中,有哪些正在执行的进程,以及它们执行的状况。可以不加任何参数。但仅仅是捕捉某一瞬间某一个进程的状态

ps aux:查看当前目录的进程

  • USER:该进程属于的⽤户
  • PID:该进程号码
  • %CPU:进程占⽤CPU的资源⽐率
  • %MEM:该进程占⽤物理内存百分⽐
  • VSZ:进程使⽤的虚拟内存,单位Kbytes
  • RSS:该进程占⽤固定的内存量,单位Kbytes
  • TTY:该进程运⾏的终端位置
  • STAT:进程⽬前状态

其中STAT中的字母R 表示运行,S 表示可中断休眠,D 表示不可中断休眠,T表示停止的进程,Z 表示僵死的进程,X 表示死掉的进程

 

希望进程按照CPU占用百分比的降序排列,此时可以使用“ps aux --sort -%cpu”命令

 

"ps -ef”命令可以查看UID、PID、PPID 等信息

 

ps axo 命令可以自定义显示字段

 

几种常用查看进程PID的方法:

1、cat命令

 2、pidof命令

3、pgrep命令

可以查到PID后搭配kill等命令使用

 

动态查看进程

top 命令可以实时动态地显示进程

使用 top 命令动态查看进程时,进程信息分为上下两部分,上面为整体信息,下面为每一个进程的信息。系统默认更新时间为3 秒,也可以按回车键立即更新

参数
-b 批处理
-c 显示进程命令的绝对路径
-I 忽略失效过程
-s 保密模式
-S 累积模式
-d<时间> 设置间隔时间
-u<⽤户名> 指定⽤户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数 (刷新几次后结束)

 

在top执⾏过程中,输⼊⼀些指令,可以查看不同的结果

z:打开,关闭颜⾊
Z: 全局显示颜⾊修改
h:显示帮助画⾯,给出⼀些简短的命令总结说明;
k:终⽌⼀个进程;
i:忽略闲置和僵死进程,这是⼀个开关式命令;
q:退出程序;
r:重新安排⼀个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有⼩数,就换算成ms。
f或者F:从当前显示中添加或者删除项⽬;
o或者O:改变显示项⽬的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令⾏;
M:根据驻留内存⼤⼩进⾏排序;
P:根据CPU使⽤百分⽐⼤⼩进⾏排序;
T:根据时间/累计时间进⾏排序;
w:将当前设置写⼊~/.toprc⽂件中。
B:全局字体加粗
数字1:⽤于多核监控CPU,监控每个逻辑CPU的情况
b:打开,关闭加粗
x,⾼亮的形式排序对应的列
< > :移动选择排序的列

 

3 信号控制进程

kill命令

kil 命令通过向进程发送指定的信号来结束相应的进程,在默认情况采用编号为15的TERM信号。

“kill -l”可以查看全部信号

 

参数:
-l <信号编号>,若不加信号的编号参数,则使⽤“-l”参数会列出全部的信号名
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,⽽不发送任何信号
-s 指定发送信号
-u 指定⽤户

 

常见信号:

1)启动被终止的进程,重新加载,PID 不会发生变化

9)强制终止进程,使用此信号可能导致进程无法再次启动

15)默认信号,以正常流程终止进程,允许进程释放资源。若进程已出现问题,无响应,此信号将不起作用

18)恢复进程

19)暂停进程

 

killall命令

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

 

4 进程优先级

进程优先级是一个数值,动态的优先级和静态的优先级决定了进程被 CPU 处理的顺序。一个拥有更高进程优先级的进程被 CPU 处理的概率更高。

使用 top 命令可以查看 nice 级别,其中,NI列表示实际 nice 级别, PR列将 nice 级别映射到更大优先级队列,-20映射到0,+19映射到 39。

 

5 其他

 前台进程:在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。

后台进程:没有控制终端,不需要终端的交互。

 

jobs 命令:用于显示当前 Shell 中的作业列表及作业状态,包括后台运行的任务。该命令可以显示作业ID

bg命令:可以把任务移动至后台 

fg命令:可以将后台进程移动到前台,进程会占用终端,即可以使用键盘读取或写入

 

posted @   Lc---  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示