Linux如何暂停进程并随时唤醒?

进程挂起的作用

  1. 释放CPU资源:暂停非紧急任务,让出CPU给高优先级进程。
  2. 调试与排查:冻结进程状态以便检查资源占用(如strace跟踪)。
  3. 批量控制:暂停一组进程后再统一恢复(如脚本任务管理)。

挂起进程的4种方法

方法1:快捷键挂起(前台进程)

  1. 在终端中直接启动的进程(如ping baidu.com)。
  2. 按下 Ctrl + Z,进程立即暂停,输出类似:
    [1]+  Stopped   ping baidu.com
  3. 进程状态变为 T(stopped),可通过 jobs 命令查看。

方法2:kill命令挂起(后台/前台进程)

  1. 使用 SIGSTOP 信号强制暂停进程:
    kill -SIGSTOP <PID>  # 替换<PID>为实际进程ID
  2. 示例:
    # 查找进程ID
    pgrep -f "nginx"
    # 输出:8852
    kill -SIGSTOP 8852   # 挂起Nginx工作进程

方法3:pkill按名称挂起

pkill -STOP "进程名"  # 如 pkill -STOP "python3"

方法4:bg/fg结合挂起(后台转前台暂停)

  1. 启动进程到后台:
    sleep 1000 &
  2. 调入前台再暂停:
    fg %1    # 将后台作业1调到前台
    Ctrl + Z # 立即挂起

恢复被挂起的进程

场景 命令 说明
恢复前台运行 fg %<作业号> fg %1
恢复后台运行 bg %<作业号> bg %2
通过信号恢复 kill -SIGCONT <PID> kill -SIGCONT 8852
按名称恢复 pkill -CONT "进程名" pkill -CONT "python3"

关键命令与状态说明

  1. 查看进程状态
    ps -l -p <PID>  # 状态列显示 `T` 表示已挂起
    top -p <PID>    # 查看进程状态(S列显示`T`)
  2. 管理挂起任务
    • jobs:列出当前终端所有作业(含挂起状态)。
    • disown -h %1:断开作业与终端的关联(避免退出终端被终止)。

注意事项

  1. 权限要求:普通用户只能挂起自己的进程,root可挂起所有进程。
  2. 终端依赖:通过 Ctrl+Z 挂起的进程与终端关联,关闭终端可能导致进程终止(可用 nohup/disown 解绑)。
  3. 系统稳定性:长期挂起关键进程(如守护进程)可能影响服务可用性。
  4. 信号说明
    • SIGSTOP:强制暂停(不可拦截)。
    • SIGTSTP:终端触发的暂停(可被程序捕获处理)。

  • 快捷键挂起适用于前台交互进程,kill命令适合精准控制后台进程。
  • 恢复进程优先用 SIGCONT 信号,避免重复创建进程。
  • 生产环境中慎用挂起操作,可能导致资源死锁或服务中断。

引用说明: 参考Linux内核文档(kernel.org)、GNU Coreutils手册(gnu.org)及Linux man-pages项目(man7.org),信号处理机制依据POSIX标准(IEEE Std 1003.1)。

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

(0)
酷番叔酷番叔
上一篇 2025年8月7日 21:26
下一篇 2025年8月7日 22:22

相关推荐

  • bash脚本如何提升工作效率?

    临时添加组播地址(重启失效)使用 ip 命令直接绑定组播地址到指定网卡(如 eth0):sudo ip addr add 224.0.0.10 dev eth0关键参数说明:0.0.10:组播地址(范围 0.0.0 ~ 255.255.255),dev eth0:目标网络接口(通过 ip link show 查……

    2025年8月3日
    22000
  • Linux下运行C程序的具体步骤和方法是什么?

    Linux作为广泛使用的操作系统,其下运行C程序是开发者的基础技能,整个过程涉及编写源代码、编译、链接和执行四个核心步骤,本文将详细介绍每一步的操作方法及注意事项,首先需要准备工作,即安装C编译器,Linux环境下最常用的编译器是GCC(GNU Compiler Collection),大多数发行版默认未安装……

    2025年8月24日
    22100
  • Linux 7.1如何从零基础操作到系统管理?

    Linux 7.1 通常指 Red Hat Enterprise Linux (RHEL) 7.1 或其社区分支 CentOS 7.1,发布于2015年,尽管较新版本(如RHEL 8/9或CentOS Stream)已推出,本文仍将详细解析Linux 7.1的核心操作,适用于需维护旧系统的用户,以下内容基于官方……

    2025年7月4日
    20400
  • Oracle在Linux系统中的使用方法与操作步骤有哪些?

    Oracle数据库与Linux操作系统的结合是企业级应用的主流部署方案,Linux的稳定性、安全性及开源特性使其成为Oracle数据库的理想运行平台,本文将从环境准备、安装部署、配置管理到日常运维,详细说明Oracle在Linux环境下的使用方法,帮助用户高效搭建和管理Oracle数据库,Linux环境准备在安……

    2025年8月30日
    21800
  • linux如何进入系统安装目录

    Linux中,通常可通过进入终端,使用cd /命令进入系统根目录,再

    2025年8月18日
    21500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信