在 Ubuntu 上监控进程,可以从命令行工具、系统自带工具、第三方监控、以及编程/自动化几个层面来做。下面按常用程度给你一个较完整的参考。
top / htoptop
P 按 CPU 排序,M 按内存排序更友好版本:
sudo apt install htop
htop
ps(查看某一时刻进程)ps aux
ps -ef
查看某程序:
ps aux | grep nginx
watch + 命令(定时刷新)watch -n 1 'ps aux | grep python'
systemd(服务进程)查看服务状态:
systemctl status nginx
查看所有运行服务:
systemctl list-units --type=service
lsof(查看进程打开的文件/端口)lsof -p 1234
lsof -i :8080
vmstat / iostat / mpstatvmstat 1
iostat -x 1
mpstat 1
安装:
sudo apt install sysstat
strace(系统调用监控)strace -p 1234
perf(内核级性能分析)sudo perf top
/proc 文件系统cat /proc/1234/status
cat /proc/1234/cmdline
auditd(进程审计)sudo apt install auditd
sudo auditctl -w /usr/bin/python3 -p x -k python_exec
gnome-system-monitor
netdata(实时 Web 监控)glancespip install glances
glances
systemd
supervisor
| 场景 | 推荐 |
|---|---|
| 看哪个进程吃 CPU | htop |
| 看端口被谁占用 | lsof -i |
| 服务是否存活 | systemctl |
| 长期监控 | netdata / Prometheus |
| 排查卡死 | strace / perf |
如果你能说下具体想监控什么(比如:CPU 占用?某个服务是否存活?还是服务器整体性能?),我可以直接给你一套最合适的方案。