Linux 进程管理ps、top、kill、nice 一文讲清1. 前言在 Linux 中程序运行起来之后就是进程。进程管理是 Linux 运维、后端部署、嵌入式开发中的基础能力。本文重点讲清楚ps# 查看进程快照top# 实时查看进程状态kill# 给进程发送信号nice# 设置进程优先级renice# 修改运行中进程优先级2. 什么是进程程序是磁盘上的可执行文件。进程是程序运行后的实例。例如/usr/sbin/nginx是一个程序。当 Nginx 启动后系统中会出现 nginx 进程。查看ps-ef|grepnginx一个程序可以有多个进程。Nginx 常见结构是一个 master 进程加多个 worker 进程。3. PID 和 PPID每个进程都有一个 PID。名称含义PID进程 IDPPID父进程 ID查看当前 shell 的 PIDecho$$查看 PID 为 1 的进程ps-p1-f现代 Linux 中PID 1 通常是systemd它是系统服务管理的核心进程。4. 进程状态常见进程状态状态含义RRunning运行中或可运行SSleeping可中断睡眠D不可中断睡眠常见于 IO 等待TStopped暂停ZZombie僵尸进程需要重点关注D状态多可能是磁盘或网络 IO 卡住Z状态多可能是父进程没有回收子进程R状态过多可能 CPU 压力较高。5. ps查看进程快照最常用ps-ef示例UIDPIDPPIDC STIME TTY TIME CMD root10009:00 ? 00:00:02 /sbin/init user23451234009:20 pts/0 00:00:00bash字段说明字段含义UID用户PID进程 IDPPID父进程 IDSTIME启动时间TTY关联终端TIME累计 CPU 时间CMD启动命令另一种常用写法psaux它会显示 CPU、内存占用psaux--sort-%cpu|headpsaux--sort-%mem|head查找进程ps-ef|grepnginx pgrep nginx pidof nginx6. pstree查看进程树查看父子进程关系pstree带 PIDpstree-p查看某个进程树pstree-p1这对分析服务结构非常有用。7. top实时监控进程运行top常见字段字段含义PID进程 IDUSER用户PR优先级NInice 值VIRT虚拟内存RES物理内存S状态%CPUCPU 占用%MEM内存占用COMMAND命令top常用快捷键快捷键作用P按 CPU 排序M按内存排序T按运行时间排序1显示每个 CPU 核心k杀进程r修改 nice 值q退出8. kill给进程发送信号kill不只是杀死进程它本质是向进程发送信号。基本格式kill[信号]PID常见信号信号编号作用SIGTERM15请求进程正常退出SIGKILL9强制杀死进程SIGHUP1常用于重载配置SIGINT2中断类似 CtrlCSIGSTOP19暂停SIGCONT18继续默认kill1234等价于kill-151234如果进程不退出再考虑kill-91234不要一上来就kill -9。因为进程没有机会清理资源可能导致临时文件、锁文件、数据状态异常。9. killall 和 pkill按名称结束进程killallnginxpkillnginx按用户结束进程pkill-uusername这类命令可能匹配多个进程使用前最好先确认pgrep-anginx10. nice启动时设置优先级Linux 进程有 nice 值。nice 值范围通常是-20 到 19含义nice 越小优先级越高 nice 越大优先级越低以较低优先级运行备份任务nice-n10tar-czfbackup.tar.gz /data这样可以减少对其他服务的影响。11. renice修改运行中进程优先级查看某进程 nice 值ps-opid,ni,comm-p1234修改 nice 值renice10-p1234普通用户通常只能把 nice 调大也就是降低优先级。root 可以设置更高优先级。12. 常见排查场景12.1 查看服务是否运行ps-ef|grepnginx pgrep-anginx systemctl status nginx12.2 查看 CPU 占用最高进程top按P。或者psaux--sort-%cpu|head12.3 查看内存占用最高进程top按M。或者psaux--sort-%mem|head12.4 杀死卡死进程ps-ef|grepappkillPIDkill-9PID推荐先kill再kill -9。13. 小结进程管理可以总结为ps看快照 top看实时状态 kill发信号 nice设置启动优先级 renice修改运行中进程优先级常用命令ps-efpsauxtoppstree-ppgrep-anginxkill1234kill-91234nice-n10commandrenice10-p1234掌握这些命令后可以完成大多数 Linux 进程查看、资源排查和进程控制工作。