把 ps、kill、systemctl、watch 串成一条服务器排查路线。
本文目录
01进程状态查看
02终止进程信号
03后台任务切换
04PID 快速定位
05优先级调整
06服务管理
07定时监控
ps:先把进程现场看清楚
排查服务异常时,第一步通常不是动手重启,而是先确认进程是否存在、属于谁、启动命令是什么。
| psaux# 显示所有进程ps-ef# 完整格式psaux | grepnginx# 查找nginx进程ps-uusername# 查看某用户的进程ps-pPID-opid,ppid,cmd# 查看指定进程详情ps--forest# 树形显示进程关系 |
这组命令用来确认“谁在跑、怎么跑、父子关系是什么”。实用坑点:`ps aux | grep nginx` 会把 grep 自己也列出来,精确定位时更推荐接着用 `pgrep` 或 `ps -p`。
kill:别急着上强制终止
kill 不是只代表“杀掉”,本质是给进程发送信号。先正常退出,失败时再强制处理,线上服务会更稳。
1SIGHUP重新加载配置
2SIGINT中断,同 Ctrl+C
9SIGKILL强制终止
15SIGTERM正常终止,默认
18SIGCONT继续运行
19SIGSTOP暂停进程
| kill1234# 默认发送SIGTERMkill-91234# 强制终止kill-HUP1234# 重载配置killallnginx# 按名称杀死所有进程pkill-f"python.*script"# 模式匹配杀进程xkill# 图形界面点击关闭窗口 |
更稳的顺序是先 `kill 1234`,再考虑 `kill -9 1234`。大佬提示:`-HUP` 常用于让服务重载配置,不一定需要完整重启。
jobs / bg / fg:理解前后台任务
终端里临时跑脚本、压缩包、测试任务时,前后台切换能省很多窗口,也能减少误关终端带来的中断。
| sleep100 & # 后台运行jobs# 查看后台任务bg%1# 将挂起的任务放到后台fg%1# 将后台任务调到前台Ctrl+Z# 挂起当前前台任务nohupcommand & # 断开终端继续运行disown%1# 从shell任务列表移除 |
`&` 只是把任务放到后台,不等于永久运行。实用坑点:退出 SSH 前,长任务更适合配合 `nohup` 或 `tmux`。
pgrep / pidof:快速拿到 PID
进程处理经常卡在“PID 到底是哪一个”,这两个命令能少写很多管道,让定位更直接。
| pgrepnginx# 查找nginx的PIDpidofnginx# 同上pgrep-uroot-l# 查找root用户的进程并显示名称pgrep-f"python.*app"# 全命令行匹配 |
`pgrep` 像是给进程名做检索,`-f` 会匹配完整启动命令。大佬提示:批量处理前先只查不杀,确认 PID 再执行下一步。
nice / renice:给进程调优先级
服务器资源紧张时,进程优先级能让重要任务更有机会先拿到 CPU,也能让低优先级任务别抢资源。
| nice-n10command# 以优先级10启动renice-51234# 修改PID 1234的优先级renice+5-uusername# 修改用户所有进程优先级 |
nice 值越低,优先级越高。实用坑点:提高优先级通常需要更高权限,学习环境可以多试,生产环境要先评估业务影响。
systemctl:服务管理的主线命令
部署 Nginx、MySQL、后端服务时,systemctl 基本是绕不开的入口,它负责启动、停止、自启和状态查看。
| systemctlstartnginx# 启动服务systemctlstopnginx# 停止服务systemctlrestartnginx# 重启服务systemctlstatusnginx# 查看状态systemctlenablenginx# 开机自启systemctldisablenginx# 取消开机自启systemctllist-units--type=service--state=running# 运行中的服务journalctl-unginx-f# 查看服务日志 |
`status` 看当前状态,`journalctl -u nginx -f` 追服务日志。学习环境可以随手重启,生产环境要先看依赖和连接数,避免直接打断请求。
watch:让状态自动刷新
当你需要持续观察内存、磁盘、进程变化时,watch 就像把命令变成一个简易监控面板。
| watch-n2free-h# 每2秒刷新内存信息watch-d'ps aux | grep nginx'# 高亮显示变化watch-n1'df -h'# 监控磁盘空间 |
`-n` 控制刷新间隔,`-d` 高亮变化。大佬提示:排查抖动问题时,watch 比反复敲命令更稳,也更容易观察趋势。
感谢观看本次分享
觉得有用可以点赞、在看、转发
关注公众号获取更多技术干货