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)
酷番叔酷番叔
上一篇 2025年7月27日 08:22
下一篇 2025年7月27日 08:40

相关推荐

  • linux如何挂载ntfsu盘

    在Linux系统中使用NTFS格式的U盘时,由于Linux内核默认对NTFS的支持有限(仅支持只读),通常需要借助第三方工具ntfs-3g来实现读写挂载,以下是详细的挂载步骤、注意事项及常见问题处理,帮助用户顺利完成NTFS U盘的挂载与使用,准备工作:安装ntfs-3g工具ntfs-3g是一款开源的NTFS读……

    2025年8月23日
    9300
  • 如何安全进入Linux Shell?

    Linux系统通过Shell实现用户与内核交互,执行命令和管理系统,常用且安全的进入方式包括:系统终端、虚拟控制台(Ctrl+Alt+F1-F6)、SSH远程登录以及图形界面中的终端模拟器。

    2025年6月21日
    9600
  • Linux查看U盘方法全指南

    命令行方式(通用性强,适用于所有发行版)识别U盘设备插入U盘后,打开终端(Ctrl+Alt+T),执行:lsblk输出示例:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 238.5G 0 disk├─sda1 8:1 0 512M 0 part /boot……

    2025年8月6日
    9200
  • 如何快速解压文件?

    在 Linux 系统中,.tar 文件(Tape Archive,磁带归档)是一种常见的归档格式,用于将多个文件或目录打包成单个文件,它本身不压缩数据,但常与压缩工具(如 gzip、bzip2)结合使用,形成 .tar.gz、.tar.bz2 等压缩格式,解压这些文件是 Linux 用户必备的基础技能,下面详细……

    2025年7月31日
    10500
  • 如何启动Linux里的软件?命令行与图形界面方法有哪些?

    在Linux系统中,启动软件的方式多样,具体取决于软件类型(图形界面应用或命令行工具)、桌面环境以及用户的使用习惯,Linux的灵活性允许用户通过图形界面、命令行、服务管理、快捷配置等多种方式运行软件,下面将详细介绍这些常见方法,通过图形界面(GUI)启动图形应用对于大多数普通用户,图形界面是最直观的启动方式……

    2025年10月6日
    6300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信