在 Linux 下“监控进程”可以从查看当前进程、实时监控、资源占用、自动告警、进程存活保活几个层面来做。下面按常见场景给你一个实用清单。
ps —— 查看进程快照ps aux
ps -ef
ps -ef | grep nginx
常见字段:
%CPU / %MEM:CPU、内存占用STAT:进程状态(R/S/D/Z 等)PID:进程号top —— 实时查看top
P:按 CPU 排序M:按内存排序1:查看多核 CPUhtop(推荐)htop
更友好,支持:
安装:
yum install htop # CentOS
apt install htop # Ubuntu
uptime —— 负载uptime
看 load average(1 / 5 / 15 分钟)
vmstat —— 系统整体vmstat 1
关注:
r:运行队列si/so:swap 使用us/sy:用户 / 系统 CPUpidstat —— 单进程监控(很实用)pidstat -p 12345 1
pidstat -u -p 12345 1
pidstat -r -p 12345 1
监控:
strace —— 系统调用监控strace -p 12345
适合排查:
systemd(最推荐)如果是服务进程:
systemctl status nginx
journalctl -u nginx
可配置:
示例:
[Service]
Restart=always
supervisor适合非 systemd 环境(容器常用)
#!/bin/bash
if ! pgrep -f "myapp" > /dev/null; then
/usr/bin/myapp &
fi
配合 crontab 每分钟执行。
适合:
top + pidstatps + smemstracejournalctlps aux | grep Z如果你愿意,可以告诉我:
我可以直接给你一套可落地的监控方案或脚本。