在 Debian(以及大多数 Linux 发行版)中,“批量操作进程”通常指一次性查看、筛选、停止、重启或管理多个进程。下面按常见场景给你一套实用方法,从基础到进阶。
ps aux
ps -ef
按名称筛选:
ps aux | grep nginx
pgrep(推荐)pgrep -a nginx
-a:显示 PID + 命令-f:按完整命令行匹配pkill(最简单)pkill nginx
pkill -f "python3 bot.py"
强制杀死:
pkill -9 nginx
kill + pgrepkill $(pgrep nginx)
强制:
kill -9 $(pgrep nginx)
ps aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9
⚠️ 危险操作:一定要先确认 PID 列表
pkill -u www-data
或:
kill -9 $(ps -u www-data -o pid=)
ps -eo pid,%cpu --sort=-%cpu | awk 'NR>1 && NR<=6 {print $1}' | xargs kill
ps -eo pid,%mem --sort=-%mem | awk 'NR>1 && NR<=6 {print $1}' | xargs kill
查看所有服务:
systemctl list-units --type=service
批量重启:
systemctl restart nginx mysql redis
按状态筛选:
systemctl list-units --type=service --state=running
jobs
kill $(jobs -p)
top / htop 交互式批量操作top
k → 输入 PID 杀进程u → 按用户筛选apt install htop
htop
F4 过滤F9 kill#!/bin/bash
for pid in $(pgrep -f "my_program"); do
kill -9 $pid
done
./my_program &
✅ 先确认 PID
pgrep -a xxx
✅ 避免误杀系统进程
kill -9 1systemd、dbus 下手✅ 生产环境
systemctlkill 前先 kill(默认 15),再 kill -9| 需求 | 命令 |
|---|---|
| 按名称杀进程 | pkill nginx |
| 按命令行杀 | pkill -f "python app.py" |
| 按用户杀 | pkill -u user |
| 批量重启服务 | systemctl restart a b c |
| 查看进程树 | pstree |
如果你能具体说一下:
我可以给你一套最安全、最合适的方案。