当前位置: 首页 > news >正文

《每日一命令12:kill——不只是杀进程这么简单》

本期摘要

你以为kill就是杀进程?kill -9一把梭?其实kill的本质是给进程发送信号。本文讲清楚kill命令的底层逻辑:信号是什么、常用信号编号的含义(1 HUP重载配置、9 KILL强制杀死、15 TERM优雅停止、3 QUIT生成core dump)。还提供了4个真实场景,包括重载nginx配置而不中断服务、杀死僵尸进程、按名称批量杀进程等。

kill是什么?

kill命令用来向进程发送信号。不指定信号时,默认发送 TERM(15),请求进程优雅退出。

不是“杀死”,是“发消息”。

常用信号

编号信号名含义使用场景
1HUP挂起,通常用于重载配置nginx/haproxy重载配置不重启
3QUIT退出,生成core dump调试崩溃问题
9KILL强制杀死进程卡死、杀不掉时
15TERM优雅终止(默认)正常停止服务
18CONT继续运行恢复被暂停的进程
19STOP暂停进程临时冻结进程

最常用的5种姿势

1. 优雅停止进程(默认)

bash

kill 12345

发送SIGTERM,进程可以自己清理资源后退出。

2. 强制杀死

bash

kill -9 12345

发送SIGKILL,内核直接回收进程资源,进程没有机会做任何清理。

3. 重载配置

bash

kill -1 12345

发送SIGHUP,nginx这类服务会重新读取配置文件。

4. 按名称杀死

bash

pkill nginx killall nginx

pkill和killall都可以按进程名批量操作。

5. 列出所有信号

bash

kill -l

输出所有信号名称和编号。

真实场景

场景1:重载nginx配置而不中断服务

bash

nginx -t # 先检查配置语法 kill -1 $(cat /var/run/nginx.pid) # 重载配置

场景2:进程杀不掉怎么办

bash

kill -9 12345 # 如果这个还杀不掉 ps aux | grep 12345 # 检查是不是僵尸进程 # 僵尸进程需要等父进程回收,或重启父进程

场景3:暂停一个消耗CPU的后台任务

bash

kill -19 12345 # 暂停 kill -18 12345 # 恢复

场景4:批量杀死所有java进程

bash

pkill -9 java

kill -9 的副作用

副作用说明
不释放共享内存可能导致IPC资源泄漏
不关闭文件句柄极端情况导致文件系统问题
不清理临时文件遗留垃圾文件
应用无法做最后处理比如未提交的事务、未发送的日志

原则:能用-15就不用-9,-9是最后的手段。

常用命令速查

命令含义
kill -15 PID优雅停止
kill -9 PID强制杀死
kill -1 PID重载配置
pkill -f pattern按完整命令行匹配杀死
killall name按进程名杀死
kill -l列出所有信号

下期预告

《每日一命令13:top——实时监控系统状态》

http://www.jsqmd.com/news/711089/

相关文章:

  • 机器人双电池厂家推荐(双电池/热插拔系统解决方案)【浩博电池】
  • 医学影像报告自动生成技术:临床对比解码(CCD)详解
  • AI 系统的“可预测性”:我们真的能信任 AI 吗?
  • AutoHideCursor:自动隐藏鼠标光标,打造无干扰桌面工作环境
  • Windows任务栏透明美化终极指南:5分钟让桌面焕然一新的简单教程
  • Docker AI Toolkit 2026安装失败率下降87%的秘密:4类典型报错诊断树+自动修复脚本(限前500名领取)
  • 2026 最新 ReAct 框架详解!搞懂 AI Agent 核心底层原理,小白也能学明白
  • 抖音音频批量下载终极指南:免费开源工具让音乐收集效率提升90%
  • STM32按键控制LED避坑指南:从GPIO模式选择到消抖代码的常见误区
  • MCP插件生态安全加固实战(CVE-2024-XXXX已触发!立即启用这4道动态准入网关)
  • NCM文件解密终极指南:3步快速解锁网易云音乐加密格式
  • Win11Debloat完整指南:如何通过PowerShell脚本彻底优化Windows 10/11系统性能
  • TextIn xParse全解析与完整使用指南:非结构化文档秒变结构化数据的AI基础设施
  • DreamCAD:多模态参数化CAD生成框架解析
  • 从零开始的web前端开发07
  • UnBuild:AI驱动的逆向工程引擎,自动生成项目重建蓝图与AI编码指令
  • BibiGPT开源项目解析:AI音视频总结工具的技术架构与部署实践
  • AI智能体安全操作Google Ads:基于工作流的自动化广告管理实践
  • 终极指南:如何用foo2zjs在Linux上实现专业级打印机兼容性
  • 技术深度解析:Bodymovin扩展面板的跨平台动画数据转换架构
  • AI图像生成中的同质化问题与解决方案
  • 自己编译unreal angelscript 5.4
  • 快速解锁PDF文本:pdftotext完整解决方案
  • LLM智能体开发中的数据标准化实践与ADP协议解析
  • 基于Llama3和distilabel构建高效NLP微调数据集
  • 便携式计算机长续航:6个关键步骤让电池续航稳定达标10小时
  • Spring Batch 中的异步处理与多线程策略
  • 从《Science》经典案例到你的细胞房:CRISPR/Cas9基因敲除细胞株构建与单克隆筛选实战复盘
  • FineCat-NLI:动态注意力与对抗训练提升NLI性能
  • Golang怎么实现进制转换_Golang如何在二进制八进制十六进制之间互相转换【基础】