在 Linux 系统中,停止正在运行的命令或进程有多种方法,以下是常见的几种方式:
Ctrl + C
(前台进程)ping
、top
、长时间运行的脚本等)。Ctrl + C
。SIGINT
信号,强制终止进程。kill
命令(后台进程或已知 PID)ps
或 pgrep
查找进程 ID(PID):
bash
ps aux | grep "进程名" # 例如 ps aux | grep nginx
pgrep -f "进程名" # 直接获取 PID
SIGTERM
信号,允许进程清理):
bash
kill PID # 例如 kill 1234
SIGKILL
信号,立即结束):
bash
kill -9 PID # 例如 kill -9 1234
pkill
或 killall
(通过进程名终止)pkill
(按名称匹配):
bash
pkill -f "进程名" # 例如 pkill -f "python script.py"
killall
(精确匹配进程名):
bash
killall 进程名 # 例如 killall nginx
Ctrl + Z
+ bg
/fg
+ kill
(挂起并管理)Ctrl + Z
将前台进程挂起(暂停)。bash
jobs # 显示被挂起的作业列表
bash
kill %作业号 # 例如 kill %1
systemd
管理的服务:
bash
sudo systemctl stop 服务名 # 例如 sudo systemctl stop nginx
docker
容器:
bash
docker stop 容器名或ID
sudo
。bash
kill -- -PID组ID # 注意负号
kill PID
,无效时再用 kill -9 PID
(强制终止可能导致数据丢失)。场景 | 命令示例 |
---|---|
前台进程 | Ctrl + C |
已知 PID | kill PID 或 kill -9 PID |
按名称终止 | pkill -f "name" |
系统服务 | systemctl stop service |
根据实际情况选择合适的方法,优先使用非强制终止(SIGTERM
),避免数据损坏。