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系统中,yum(Yellowdog Updater Modified)是RHEL、CentOS等发行版的核心包管理工具,虽然yum本身不直接提供软件安装路径的查询功能,但可通过结合rpm命令实现精准定位,以下是详细操作指南:查看已安装的软件包 yum list installed作用:列出所有已安装……

    2025年7月13日
    18200
  • Linux中如何更新g?

    在Linux系统中,“更新g”通常指向几种关键组件的更新,如核心运行库glibc、编译器gcc或版本控制工具git,不同组件的更新方法、风险及注意事项差异较大,需结合具体需求谨慎操作,以下将分别介绍这三种常见“g”组件的更新流程及最佳实践,更新glibc(GNU C Library)glibc是Linux系统的……

    2025年10月3日
    16000
  • linux如何查看网络丢包

    Linux 中,可使用 ping 命令查看网络丢包,如 `ping www.baidu.

    2025年8月10日
    13600
  • 如何实现Windows虚拟机连接Linux系统的操作方法?

    在Windows主机上连接Linux虚拟机是开发、运维和日常学习中常见的需求,无论是通过命令行进行远程管理,还是实现文件共享,都需要正确的配置步骤,本文将详细说明从虚拟机软件选择到网络配置、服务搭建及连接方式的全流程,帮助用户顺利实现Windows与Linux虚拟机的互通,选择虚拟机软件并创建Linux虚拟机首……

    2025年9月20日
    15500
  • Linux系统如何读取文件内容?

    Linux作为广泛使用的操作系统,文件操作是其核心功能之一,读取文件更是日常运维、开发和数据处理中的基础操作,在Linux中,读取文件的方法多样,既可以通过命令行工具快速查看内容,也能通过编程接口实现灵活处理,还能借助系统调用深入底层操作,本文将详细介绍Linux中读取文件的多种方式及其适用场景,命令行工具:快……

    2025年10月6日
    14600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信