您的位置:首页 > 娱乐 > 明星 > 苏州建设工程网_互联网保险案例_国内最新十大新闻_国家免费培训机构

苏州建设工程网_互联网保险案例_国内最新十大新闻_国家免费培训机构

2025/7/16 21:16:17 来源:https://blog.csdn.net/vbhfdghff/article/details/148895027  浏览:    关键词:苏州建设工程网_互联网保险案例_国内最新十大新闻_国家免费培训机构
苏州建设工程网_互联网保险案例_国内最新十大新闻_国家免费培训机构

概述

  • 以下是Linux kill命令的详细教程,包含信号机制、常用信号、命令语法及实战技巧
  • 资料已经分类整理好:https://pan.quark.cn/s/26d73f7dd8a7

1. 基本概念与语法

kill命令用于向进程发送信号,默认发送终止信号(SIGTERM,编号15)。

核心语法

kill [选项] [信号] 进程ID(PID)

常用选项

选项作用
-l列出所有可用信号
-s指定信号名称或编号
-n直接使用信号编号(如 -9

2. 信号机制详解

2.1 信号分类

Linux系统有64种信号(编号1-64),常见分为两类:

  • 标准信号(1-31):不可靠信号,可能丢失。
  • 实时信号(32-64):可靠信号,不会丢失。
2.2 常用信号列表
信号编号信号名称作用
1SIGHUP终端挂起或控制进程终止
2SIGINT键盘中断(Ctrl+C)
3SIGQUIT键盘退出(Ctrl+\)
9SIGKILL强制终止进程(不可捕获)
15SIGTERM正常终止进程(默认,可捕获)
18SIGCONT继续运行暂停的进程
19SIGSTOP暂停进程(不可捕获)
20SIGTSTP终端暂停(Ctrl+Z)

3. 信号发送方式

3.1 使用信号名称
kill -s SIGTERM 1234  # 正常终止PID为1234的进程
kill -s SIGKILL 5678  # 强制终止PID为5678的进程
3.2 使用信号编号
kill -15 1234  # 等同于 kill -s SIGTERM 1234
kill -9 5678   # 等同于 kill -s SIGKILL 5678
3.3 向多个进程发送信号
kill -9 1234 5678 9012  # 同时终止多个进程
kill -SIGTERM $(pgrep nginx)  # 终止所有nginx进程
3.4 向进程组发送信号
kill -15 -1234  # 终止PID为1234的进程及其所有子进程

4. 不同信号的应用场景

4.1 优雅终止:SIGTERM(15)
  • 作用:请求进程正常终止,进程可捕获该信号并执行清理操作(如保存数据、关闭连接)。
  • 适用场景:大多数情况首选,避免数据丢失。
kill 1234  # 默认发送SIGTERM
4.2 强制终止:SIGKILL(9)
  • 作用:立即终止进程,不可被捕获或忽略,直接释放资源。
  • 适用场景:进程无响应、陷入死循环或必须立即终止时。
kill -9 1234  # 强制终止进程
4.3 暂停与恢复
  • 暂停进程
    kill -STOP 1234  # 暂停PID为1234的进程
    
  • 恢复进程
    kill -CONT 1234  # 恢复运行PID为1234的进程
    
4.4 重新加载配置:SIGHUP(1)
  • 作用:常用于让进程重新读取配置文件而无需重启。
  • 适用场景:Nginx、Apache等服务配置更新后。
kill -HUP $(pgrep nginx)  # 重新加载nginx配置

5. 实战技巧

5.1 安全终止顽固进程
# 1. 先尝试正常终止
kill 1234
sleep 2  # 等待2秒# 2. 若未终止,发送警告信号
kill -1 1234
sleep 2# 3. 仍未终止,强制杀死
kill -9 1234
5.2 终止指定用户的所有进程
kill -9 $(ps -u username -o pid=)  # 终止用户username的所有进程
5.3 终止包含特定名称的进程
# 方法1:结合pgrep
kill -9 $(pgrep -f "python script.py")  # 终止包含"python script.py"的进程# 方法2:结合ps和grep
ps aux | grep "java app.jar" | grep -v grep | awk '{print $2}' | xargs kill -9
5.4 批量终止进程组
pkill -9 -P 1234  # 终止PID为1234的所有子进程

6. 注意事项

  1. 慎用SIGKILL
    • 可能导致数据丢失(如文件未保存)。
    • 无法清理资源(如临时文件、数据库锁)。
  2. 僵尸进程处理
    • 僵尸进程(STAT=Z)无法被SIGKILL终止,需杀死其父进程释放资源。
  3. 系统关键进程
    • 避免杀死PID为1的initsystemd进程,会导致系统崩溃。
  4. 信号屏蔽
    • 某些进程可能屏蔽特定信号(如数据库服务屏蔽SIGTERM),需查阅文档确认。

7. 总结

kill命令的核心是理解信号机制,根据场景选择合适的信号:

  • 优雅终止:优先使用SIGTERM(默认)。
  • 强制终止:使用SIGKILL作为最后手段。
  • 进程控制:使用SIGSTOPSIGCONT暂停/恢复进程。
  • 配置重载:使用SIGHUP让服务重新加载配置。

结合pspgrep等命令,可高效定位并管理系统进程,是Linux运维的必备技能。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com