当前位置: 首页 > news >正文

Linex进程管理

一、进程查看命令

1.pstree

用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁

语法:

pstree [选项]  
-A各进程树之间的连接以ASCII码字符来连接
-U各进程树之间的连接以utf8字符来连接,某些终端可能会有错误
-a同时列出每个进程的PID
-u同时列出每个进程的所属账号名称

2.ps

显示系统当前进程瞬间运行状态

语法:

ps [选项]  
-A所有的进程均显示出来,与-e具有同样的效用
-a显示现行终端机下的所有进程,包括其他用户的进程
-u以用户为主的进程状态
-x通常与 a 这个参数一起使用,可列出较完整信息
-l较长、较详细的将该PID 的的信息列出

输出解析

USER:进程的所有者

PID:进程的ID

%CPU:进程占用的CPU百分比

%MEN:进程占用的内存百分比

VSZ:进程使用的虚拟内存大小

RSS:进程使用的物理内存大小

TTY:进程所在的终端

STAT:进程的状态,如S(休眠),R(运行),Z(僵尸进程)等

START:进程的启动时间

TIME:进程启动耗时时间

COMMAND:启动进程的命令

进程状态:

S:休眠

s:父进程

R:运行

Z:僵尸进程(前台程序已死,但后台驻留进程没有正常退出;后果就是占用资源不干活。)

在Linex系统中,ps aux命令可以查看当前运行的进程及其详细信息

ps aux输出的进程状态STAT详解

状态码含义说明
RRunning(运行中)进程正在运行或可运行(在运行队列中)
SInterruptible Sleep (可中断睡眠)进程在等待事件(如I/O、信号),可被信号唤醒
DUninterruptible Sleep (不可中断睡眠)进程在等待硬件I/O(如磁盘读写),不能被信号唤醒,通常与内核相关
TStopped (已停止)进程信号被信号暂停,或正在被调试 
ZZombie (僵尸进程)进程已终止,但父进程尚未调用Wait() 回收资源。
`X``Dead (已死亡)进程已完全停止
IIdle (空闲)内核线程,处于空闲状态(较新内核使用)
<High Priority (高优先级)进程优先级较高
NLow Priority (低优先级)进程优先级较低
sSession Leader (会话领导者)进程是会话(Session)的首进程
lMulti-threaded (多线程)进程是多线程的
+Foreground (前台进程)进程属于前台进程组(如终端运行的命令)

常见进程状态组合

Ss:会话领导者(s),处于可中断睡眠(S)

Ssl:多线程(l)的会话领导者(s)

R+:前台运行(+)的进程(R)

D:不可中断睡眠(D),常见于磁盘I/O密集型任务

Z:僵尸进程(Z),需要父进程回收资源

I<:内核空闲线程(I),低优先级(<)

显示所有进程:

ps aux | grep nginx

显示父子进程关系:

ps -efj

动态查看进程状态:

top

ps -elf命令详解

语法:

ps -elf

-e:显示所有进程

-l:长格式输出,显示更多字段

-f:完整格式输出,显示完整的命令行和用户信息

关键字段详解

1.进程状态(S)列

R:运行中(Running)

S:可中断睡眠(Interruptible Sleep,等待事件)

D:不可中断睡眠(Uninterruptible Sleep,通常与磁盘I/O相关)

Z:僵尸进程(Zombie)

T:已停止(Stopped,如被SIGSTOP暂停)

I:空闲(Idle,内核线程)

2.优先级

PRI:进程的实际优先级(由内核动态调整,数值越小优先级越高)

NI:Nice值(用户可调整的优先级修正值):

-20:最高优先级(抢占更多CPU)

19:最低优先级(CPU友好,适合后台任务)

3.WCHAN列

显示进程当前等待的内核事件

若为 -,表示进程正在运行或无需等待

4.CMD列

-f选项会显示完整命令行(包括参数),而ps aux默认截断长命令

常用组合命令

1.查找特定进程

ps -elf | grep nginx

2.查看进程树(父子关系)

ps -elf --forest

3.按CPU或内存排序

ps -elf --sort=-%cpu  # 按CPU降序
ps -elf --sort=-%mem  # 按内存降序

4.查看僵尸进程

ps -elf | grep 'Z'

3.pgrep

查看进程的信息,包括进程是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。 pgrep通过匹配其程序名,找到匹配的进程

语法:

pgrep [选项] pidname
-l同时显示进程名和PID
-o当匹配多个同一命令启动的进程时,显示进程号最小的那个
-n当匹配多个同一命令启动的进程时,显示进程号最大的那个

4.top,htop

top:动态监控系统处理器状态,htop姑且称之为top的增强版

yum install epel-release -y    #安装epel源     
yum install htop -y     #安装htop

常用选项

-d:指定更新的间隔时间,以秒为单位

-n:指定更新的次数

-p:监控指定进程的ID

-u:监控指定用户的进程

常用按键

空格键:立即刷新显示

M:按照内存使用百分比对进程进行排序

P:按照 CPU 使用百分比对进程进行排序

T:按照进程运行时间对进程进行排序

q:退出 top 命令

h:显示帮助信息

二、进程管理命令

1.kill

语法:

kill [选项] pid 
-l列出所有信号参数
-a当处理当前进程时
-u指定用户
-p指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s发送指定的信号
-9强制杀死
-0用来检测一个进程是否存在

信号列表

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR213) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+439) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+843) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-1451) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-1055) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-659) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-263) SIGRTMAX-1  64) SIGRTMAX

2.pkill和killall

pkill是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序,如果想杀掉单个进程,请用kill来杀掉

语法:

pkill/killall [选项] 进程名

http://www.dtcms.com/a/359941.html

相关文章:

  • OC-属性关键字
  • GEE 实战:计算 Landsat8 月均 NDVI 并导出(2013-2024)_后附完整代码
  • 【pve】
  • 秋招 AI 方向 —— 华为机考
  • 【学习笔记】LLM Interview(Agent相关)
  • 计算机视觉与深度学习 | 低照度图像处理算法综述:发展、技术与趋势
  • 大数据毕业设计选题推荐-基于大数据的大气和海洋动力学数据分析与可视化系统-Spark-Hadoop-Bigdata
  • (数组的定义与使用) 本篇目标 1. 理解数组基本概念 2. 掌握数组的基本用法 3. 数组与方法互操作 4. 熟练掌握数组相关的常见问题和代码
  • 同类软件对比(三):Python vs Anaconda vs Miniconda:深入解析与选择策略
  • 2025.8.18-2025.8.24第35周:备稿演讲有进步
  • Paimon——官网阅读:Spark 引擎
  • 【图论】Graph.jl 核心函数
  • 如何通过 AI IDE 集成开发工具快速生成简易留言板系统
  • Java面试-微服务(spring cloud篇)
  • 飞牛Docker部署免费frp内网穿透
  • RK3568平台开发系列讲解:瑞芯微平台4G模块篇移植
  • TFS-2005《A Possibilistic Fuzzy c-Means Clustering Algorithm》
  • 商业航天:中、美、欧“软件定义卫星” 路线全解析
  • Iterative loop of ML development|机器学习的迭代发展
  • JavaEE初阶网络原理-初识
  • PythonDay42
  • 提取动漫图像轮廓并拟合为样条曲线(MATLAB)
  • Mysql学习 Day3 Explain详解与索引优化
  • APB验证VIP Agent的各个组件之间的通信
  • SpringAI应用开发面试实录:核心技术、架构设计与业务场景全解析
  • React前端开发_Day12_极客园移动端项目
  • 解决 uni-app 中大数据列表的静默UI渲染失败问题
  • UniApp 基础开发第一步:HBuilderX 安装与环境配置
  • Wi-Fi技术——物理层技术
  • 【C++】构造函数初始化详解