TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
搜索到 3 篇与 的结果
2025-08-15

Linux终止指定进程完全指南:kill命令信号机制详解

Linux终止指定进程完全指南:kill命令信号机制详解
一、kill命令的本质与工作原理在Linux系统中,kill命令的实际功能远比其字面含义复杂。这个看似简单的命令实际上是一个进程间通信(IPC)工具,它通过向目标进程发送特定信号(Signal)来实现控制。当我们执行kill 1234时,本质上是向PID为1234的进程发送了一个编号为15的SIGTERM信号。理解信号机制至关重要。Linux系统定义了64种不同的信号(可通过kill -l查看完整列表),其中与进程终止直接相关的有:| 信号编号 | 信号名称 | 默认动作 | 作用说明 | |----------|----------|----------|------------------------| | 1 | SIGHUP | 终止 | 终端挂断或控制进程终止 | | 2 | SIGINT | 终止 | 键盘中断(Ctrl+C) | | 9 | SIGKILL | 终止 | 强制立即终止 | | 15 | SIGTERM ...
2025年08月15日
53 阅读
0 评论
2025-08-07

Linux进程组管理实战:killpg命令的深度应用指南

Linux进程组管理实战:killpg命令的深度应用指南
一、理解Linux进程组机制在Linux系统中,每个进程不仅拥有独立的PID,还属于某个进程组(Process Group)。这种设计最初是为了支持Shell的作业控制,现已成为进程管理的核心机制之一。通过ps -j命令可以看到进程组ID(PGID): bash $ ps -j -p $$ PID PGID SID TTY TIME CMD 12345 12345 67890 pts/1 00:00:00 bash关键特性: 1. 进程组ID等于组长的PID 2. 新进程默认继承父进程的PGID 3. setsid()可创建新会话和进程组二、killpg命令的核心用法2.1 基础语法bash killpg [信号] 进程组ID 等效写法: bash kill -信号 -进程组ID2.2 实战案例终止整个Apache工作进程组:bash查找主进程组$ pgrep -d',' -g $(ps -o pgid= $(pgrep httpd)) 1234优雅终止$ sudo killpg -TERM 1234三、高级应用技巧3.1 信号传递策略| 信号...
2025年08月07日
51 阅读
0 评论
2025-08-04

SIGTERM:Linux容器的优雅终止(退出代码143)解析

SIGTERM:Linux容器的优雅终止(退出代码143)解析
一、当容器收到"死亡通知"时会发生什么?在Linux容器化环境中,SIGTERM(信号编号15)就像一张礼貌的"死亡通知单"。与强制终止的SIGKILL不同,它允许进程进行最后的清理工作。当容器编排系统(如Kubernetes)决定终止一个容器时,默认会先发送SIGTERM信号,等待30秒后才会发送SIGKILL。有趣的是,这个设计源于Unix哲学中的"宽容原则"——给进程一个体面退出的机会。但现实中我们常看到这样的场景:bash $ docker stop my_container容器日志最后显示:[INFO] Received SIGTERM, shutting down... Process exited with code 143二、退出代码143的数学奥秘143这个数字看似随机,实则暗藏玄机: - Linux进程被信号终止时,退出码=128+信号编号 - SIGTERM的信号编号是15 - 因此:128 + 15 = 143这个计算规则可以追溯到1970年代的Unix早期设计。通过这种方式,系统管理员能快速判断进程是被哪个信号终止的。其他常见信号对应的退出码: - SI...
2025年08月04日
69 阅读
0 评论