Linux进程管理包含查看筛选、优先级调整、资源限制、强制终止和实时监控五类操作:用ps/pgrep定位进程;renice调优nice值;cgroups设内存/CPU上限;kill发信号终止;top/htop动态监控。

在Linux系统中,进程的生命周期管理与资源监控是系统管理员和开发人员日常运维的核心任务。当进程异常终止、资源占用过高或响应迟缓时,需通过命令行工具实时干预其状态、调整优先级或限制资源使用。以下是针对该场景的多种实战操作方法:
一、查看与筛选运行中进程
通过ps和pgrep命令可快速定位目标进程,获取PID、CPU/内存占用及启动参数等关键信息,为后续控制提供依据。
1、执行ps aux --sort=-%cpu | head -n 11,列出CPU占用最高的前10个进程。
2、使用pgrep -f "nginx",按命令行关键字精确匹配nginx相关进程ID。
3、运行ps -o pid,ppid,cmd,%mem,%cpu -p $(pgrep -f "python.*data.py"),输出指定Python脚本的完整资源视图。
二、动态调整进程优先级
通过renice命令修改进程的nice值,影响内核调度器对其CPU时间片的分配权重,从而间接调控其运行节奏。
1、确认目标进程PID,例如pidof nginx返回1234。
2、执行sudo renice -n 5 -p 1234,将该进程优先级调低(数值越大,优先级越低)。
3、验证变更结果:ps -o pid,nice,cmd -p 1234,检查输出中nice列是否更新为5。
三、限制进程资源使用上限
利用cgroups v1或systemd的scope机制,可对单个进程施加内存、CPU配额限制,防止其耗尽系统资源。
1、创建临时cgroup目录:sudo mkdir /sys/fs/cgroup/memory/limit_demo。
2、设置内存上限为512MB:echo 536870912 | sudo tee /sys/fs/cgroup/memory/limit_demo/memory.limit_in_bytes。
3、将进程加入该cgroup:echo <strong><span style="color:green">1234</span></strong> | sudo tee /sys/fs/cgroup/memory/limit_demo/cgroup.procs。
四、强制终止异常进程
当进程处于D(不可中断睡眠)或Z(僵尸)状态且无法正常退出时,需结合信号类型与进程状态选择终止方式。
1、对普通挂起进程发送SIGTERM:kill 1234,给予其清理资源的机会。
2、若无响应,强制终止:kill -9 1234,直接触发内核级终止流程。
3、清除僵尸进程父进程:若僵尸进程PPID为1,执行sudo kill -s SIGCHLD 1尝试回收。
五、实时监控进程资源消耗
top和htop提供交互式界面,可动态刷新显示各进程的CPU、内存、IO及线程数,支持排序与过滤。
1、启动top -p 1234,仅监控指定PID的实时资源变化。
2、在top界面中按下Shift+P按CPU使用率降序排列,按下Shift+M按内存升序排列。
3、安装htop后运行htop --filter="java",高亮显示所有Java相关进程及其子线程树。

















