可使用pkill、killall、pgrep+kill或systemctl终止Linux进程:pkill按名匹配并发送信号;killall依全名精确终止;pgrep筛选PID后kill控制更精准;systemctl专管systemd服务。

如果您需要在Linux系统中根据进程名称终止运行中的程序,可以使用多种命令行工具实现快速精准的进程管理。以下是几种常用且高效的方法:
一、使用pkill按名称终止进程
pkill命令通过匹配进程名(或更复杂的模式)向符合条件的进程发送信号,默认为SIGTERM,可安全终止大多数用户级进程。
1、执行基础匹配杀进程:输入 pkill 进程名,例如 pkill firefox 将终止所有名为firefox的进程。
2、强制终止进程:添加 -9 选项发送 SIGKILL,例如 pkill -9 python3 立即结束所有python3进程。
3、区分大小写匹配:默认pkill区分大小写;如需忽略大小写,使用 -i 参数,例如 pkill -i chrome 匹配 Chrome、CHROME、chrome等。
二、使用killall按完整名称终止进程
killall命令依据进程的完整可执行文件名进行匹配,不支持正则表达式,但对精确名称匹配更严格,避免误杀。
1、直接按名称终止:输入 killall 进程名,例如 killall nginx 终止所有nginx主进程。
2、静默执行不报错:添加 -q 参数抑制“无匹配进程”提示,适用于脚本中避免干扰输出,例如 killall -q sshd。
3、限制匹配用户:使用 -u 指定用户名,仅终止该用户启动的同名进程,例如 killall -u john java。
三、结合pgrep与kill实现条件筛选后终止
先用pgrep筛选出目标进程PID,再交由kill命令处理,便于加入额外判断逻辑,提高操作可控性。
1、列出匹配进程PID:执行 pgrep -f "关键字",-f 参数使匹配扩展至完整命令行,例如 pgrep -f "python.*data_process.py"。
2、将PID传给kill:使用命令替换方式,例如 kill $(pgrep -f "node server.js")。
3、批量终止多个PID:若需发送SIGKILL,可组合为 kill -9 $(pgrep -f "old_script.sh")。
四、使用systemctl管理systemd服务进程
对于以systemd服务形式运行的进程(如httpd、redis-server),应优先使用systemctl控制,确保服务状态一致性及资源清理完整性。
1、停止服务并禁用自启:执行 sudo systemctl stop 服务名,例如 sudo systemctl stop apache2。
2、立即终止并防止后续启动:追加 disable 操作,例如 sudo systemctl disable --now mysql。
3、查看服务当前状态:使用 systemctl is-active 服务名 验证是否已退出,返回 inactive 表示成功终止。










