Linux常用的进程命令速查

Linux常用的进程命令速查

把 ps、kill、systemctl、watch 串成一条服务器排查路线。

本文目录

01进程状态查看

02终止进程信号

03后台任务切换

04PID 快速定位

05优先级调整

06服务管理

07定时监控

ps:先把进程现场看清楚

排查服务异常时,第一步通常不是动手重启,而是先确认进程是否存在、属于谁、启动命令是什么。

1
2
3
4
5
6
ps aux # 显示所有进程
ps -ef # 完整格式
ps aux | grep nginx # 查找nginx进程
ps -u username # 查看某用户的进程
ps -p PID -o pid,ppid,cmd # 查看指定进程详情
ps --forest # 树形显示进程关系

这组命令用来确认“谁在跑、怎么跑、父子关系是什么”。实用坑点:ps aux | grep nginx 会把 grep 自己也列出来,精确定位时更推荐接着用 pgrepps -p

kill:别急着上强制终止

kill 不是只代表“杀掉”,本质是给进程发送信号。先正常退出,失败时再强制处理,线上服务会更稳。

1
2
3
4
5
6
7
8
9
10
11
**1**SIGHUP重新加载配置

**2**SIGINT中断,同 Ctrl+C

**9**SIGKILL强制终止

**15**SIGTERM正常终止,默认

**18**SIGCONT继续运行

**19**SIGSTOP暂停进程
1
2
3
4
5
6
kill 1234 # 默认发送SIGTERM
kill -9 1234 # 强制终止
kill -HUP 1234 # 重载配置
killall nginx # 按名称杀死所有进程
pkill -f "python.*script" # 模式匹配杀进程
xkill # 图形界面点击关闭窗口

更稳的顺序是先 kill 1234,再考虑 kill -9 1234。大佬提示:-HUP 常用于让服务重载配置,不一定需要完整重启。

jobs / bg / fg:理解前后台任务

终端里临时跑脚本、压缩包、测试任务时,前后台切换能省很多窗口,也能减少误关终端带来的中断。

1
2
3
4
5
6
7
sleep 100 & # 后台运行
jobs # 查看后台任务
bg %1 # 将挂起的任务放到后台
fg %1 # 将后台任务调到前台
Ctrl+Z # 挂起当前前台任务
nohup command & # 断开终端继续运行
disown %1 # 从shell任务列表移除

& 只是把任务放到后台,不等于永久运行。实用坑点:退出 SSH 前,长任务更适合配合 nohuptmux

pgrep / pidof:快速拿到 PID

进程处理经常卡在“PID 到底是哪一个”,这两个命令能少写很多管道,让定位更直接。

1
2
3
4
pgrep nginx # 查找nginx的PID
pidof nginx # 同上
pgrep -u root -l # 查找root用户的进程并显示名称
pgrep -f "python.*app" # 全命令行匹配

pgrep 像是给进程名做检索,-f 会匹配完整启动命令。大佬提示:批量处理前先只查不杀,确认 PID 再执行下一步。

nice / renice:给进程调优先级

服务器资源紧张时,进程优先级能让重要任务更有机会先拿到 CPU,也能让低优先级任务别抢资源。

1
2
3
nice -n 10 command # 以优先级10启动
renice -5 1234 # 修改PID 1234的优先级
renice +5 -u username # 修改用户所有进程优先级

nice 值越低,优先级越高。实用坑点:提高优先级通常需要更高权限,学习环境可以多试,生产环境要先评估业务影响。

systemctl:服务管理的主线命令

1
2
3
4
5
6
7
8
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx # 查看状态
systemctl enable nginx # 开机自启
systemctl disable nginx # 取消开机自启
systemctl list-units --type=service --state=running # 运行中的服务
journalctl -u nginx -f # 查看服务日志

status 看当前状态,journalctl -u nginx -f 追服务日志。学习环境可以随手重启,生产环境要先看依赖和连接数,避免直接打断请求。

watch:让状态自动刷新

当你需要持续观察内存、磁盘、进程变化时,watch 就像把命令变成一个简易监控面板。

1
2
3
watch -n 2 free -h # 每2秒刷新内存信息
watch -d 'ps aux | grep nginx' # 高亮显示变化
watch -n 1 'df -h' # 监控磁盘空间

-n 控制刷新间隔,-d 高亮变化。大佬提示:排查抖动问题时,watch 比反复敲命令更稳,也更容易观察趋势。

https://mp.weixin.qq.com/s/HzFX-xRmHUKgFl1OTIeMSw