Linux程序卡死?如何快速停止?

通过终端停止程序

终止前台程序(Ctrl+C)

  • 适用场景:程序在终端前台运行(如 python script.py)。
  • 操作:
    • 按下 Ctrl + C 组合键,立即发送中断信号(SIGINT)。
    • 程序会正常退出并释放资源。
  • 示例:
    $ tail -f /var/log/syslog  # 运行中按 Ctrl+C 终止

通过进程ID(PID)终止

  • 步骤1:查找进程PID
    • 使用 pspgrep 定位进程:
      ps aux | grep "程序名"   # 如 ps aux | grep firefox
      pgrep firefox           # 直接输出PID
  • 步骤2:发送终止信号
    • kill [信号] PID:默认发送 SIGTERM(15),允许程序清理资源:
      kill 1234              # 终止PID为1234的进程
    • 强制终止(SIGKILL,信号9):
      kill -9 1234           # 强制杀死无响应的进程

通过进程名批量终止

  • killall 命令
    终止所有同名进程:

    killall firefox          # 终止所有Firefox进程
    killall -9 nginx         # 强制终止Nginx
  • pkill 命令
    支持模式匹配(如进程名、用户等):

    pkill -f "python.*script" # 终止匹配"python script"的进程
    pkill -u username        # 终止某用户的所有进程

停止系统服务

Systemd 服务管理

  • 停止服务(如Nginx、MySQL):
    sudo systemctl stop nginx.service
  • 重启服务:
    sudo systemctl restart nginx

SysVinit 系统(旧版本)

  • 使用 service 命令:
    sudo service apache2 stop

图形界面方法

  1. 系统监视器(GNOME)
    • 打开路径:应用程序 → 系统工具 → 系统监视器
    • 选择进程 → 点击”结束进程”或”强制结束”。
  2. KSysGuard(KDE)

    通过KDE菜单启动,右键选择进程并终止。


高级场景处理

终止后台作业

  • 查看后台作业:
    jobs               # 显示后台任务列表
  • 终止指定作业(后接作业号):
    kill %1            # 终止作业号为1的任务

终止占用端口的进程

  1. 查找占用端口的PID:
    sudo lsof -i :8080    # 查看8080端口的进程
  2. 终止该PID:
    sudo kill 5678

注意事项

  1. 信号区别
    • SIGTERM(15):请求正常退出(推荐首选)。
    • SIGKILL(9):强制终止(可能导致数据丢失)。
  2. 谨慎使用 kill -9
    强制终止可能破坏文件或进程状态,仅在其他方法无效时使用。
  3. 权限要求
    终止其他用户或系统进程需 sudo 权限。
  4. 服务管理优先级
    对系统服务(如Nginx)优先使用 systemctl stop 而非 kill

场景 推荐命令 风险等级
终端前台程序 Ctrl + C
已知PID的进程 kill PIDkill -9 PID 中到高
同名进程批量终止 killallpkill
系统服务 systemctl stop
图形界面程序 系统监视器

引用说明

  • Linux kill 命令文档(man7.org)
  • Systemd 服务管理指南(freedesktop.org)
  • Linux 信号机制(GNU Libc Manual) 基于Linux内核5.0+及主流发行版(Ubuntu/CentOS)验证,确保操作安全可靠。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8850.html

(0)
酷番叔酷番叔
上一篇 6小时前
下一篇 6小时前

相关推荐

  • Linux定时任务如何查看?

    查看cron定时任务cron是Linux最常用的定时任务工具,任务存储在以下位置:查看当前用户的cron任务 crontab -l直接列出当前用户的所有定时任务,若提示no crontab for user,表示该用户无定时任务,查看其他用户的cron任务(需root权限) sudo crontab -u us……

    2025年6月30日
    1500
  • Linux如何高效搜索文件?

    命令行工具(最常用)find 命令(精准搜索)功能:递归搜索目录,支持名称、类型、时间等条件基础语法: find [路径] [选项] [表达式]常用示例:按名称搜索(区分大小写): find /home -name "*.txt" # 搜索/home下所有.txt文件按名称搜索(不区分大小写……

    5天前
    1000
  • Linux如何隐藏文件夹?实用技巧分享,安全隐藏Linux文件夹的方法有哪些?,Linux隐藏文件夹保护隐私怎么做?,隐藏Linux文件夹的可靠方法?,Linux文件夹隐藏终极指南?

    基础方法:通过重命名隐藏(最常用)原理:Linux默认隐藏以点()开头的文件和文件夹,步骤:打开终端(Ctrl+Alt+T),使用 mv 命令重命名文件夹: mv 原文件夹名 .隐藏文件夹名示例:将 private 隐藏为 .private:mv private .private验证:输入 ls 不显示隐藏文件……

    2025年6月22日
    1500
  • Linux如何实现串口调试?

    普通终端模拟器(用于本地命令行操作)适用于日常命令行任务(如运行命令、管理文件):图形界面打开方式Ubuntu/Debian (GNOME):Ctrl+Alt+T 快捷键,或点击“活动”>搜索“Terminal”Fedora/CentOS:应用菜单搜索“Terminal”KDE Plasma:Alt+F2……

    2025年6月24日
    1700
  • Windows PE是什么?U盘启动必备!

    在Linux环境下进入Windows PE(预安装环境)通常指从Linux系统重启计算机并引导至PE介质(如U盘或光盘),由于PE是Windows组件,无法直接在Linux系统中运行,需通过外部介质启动,以下是详细操作指南:Linux的作用:仅用于制作PE启动盘或配置引导,后续需重启脱离Linux系统,关键步骤……

    2025年7月15日
    1500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信