插件窝 干货文章 linux命令怎么停止

linux命令怎么停止

进程 终止 kill 例如 1054    来源:    2025-04-04

在 Linux 系统中,停止正在运行的命令或进程有多种方法,以下是常见的几种方式:


1. 使用 Ctrl + C(前台进程)

  • 适用场景:当前终端中正在运行的前台命令(如 pingtop、长时间运行的脚本等)。
  • 操作:直接按键盘组合键 Ctrl + C
  • 原理:发送 SIGINT 信号,强制终止进程。

2. 使用 kill 命令(后台进程或已知 PID)

步骤 1:找到进程 PID

  • 通过 pspgrep 查找进程 ID(PID): bash ps aux | grep "进程名" # 例如 ps aux | grep nginx pgrep -f "进程名" # 直接获取 PID

步骤 2:终止进程

  • 普通终止(发送 SIGTERM 信号,允许进程清理): bash kill PID # 例如 kill 1234
  • 强制终止(发送 SIGKILL 信号,立即结束): bash kill -9 PID # 例如 kill -9 1234

3. 使用 pkillkillall(通过进程名终止)

  • pkill(按名称匹配): bash pkill -f "进程名" # 例如 pkill -f "python script.py"
  • killall(精确匹配进程名): bash killall 进程名 # 例如 killall nginx

4. 使用 Ctrl + Z + bg/fg + kill(挂起并管理)

  • 暂停进程:按 Ctrl + Z 将前台进程挂起(暂停)。
  • 查看作业bash jobs # 显示被挂起的作业列表
  • 终止挂起的作业bash kill %作业号 # 例如 kill %1

5. 特殊命令的停止方法

  • systemd 管理的服务bash sudo systemctl stop 服务名 # 例如 sudo systemctl stop nginx
  • docker 容器bash docker stop 容器名或ID

常见问题排查

  1. 权限不足:普通用户只能终止自己的进程,系统进程需用 sudo
  2. 进程残留:某些进程可能 fork 子进程,需终止整个进程组: bash kill -- -PID组ID # 注意负号
  3. 无响应:优先尝试 kill PID,无效时再用 kill -9 PID(强制终止可能导致数据丢失)。

总结

场景 命令示例
前台进程 Ctrl + C
已知 PID kill PIDkill -9 PID
按名称终止 pkill -f "name"
系统服务 systemctl stop service

根据实际情况选择合适的方法,优先使用非强制终止(SIGTERM),避免数据损坏。