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

相关推荐

  • 如何查linux是多少位

    Linux系统中,可通过执行uname -a命令查看系统位数信息,其中包含x

    2025年8月10日
    3700
  • 如何高效学习Linux命令?

    Linux 命令是操作系统的核心工具,掌握它们能大幅提升工作效率,本文遵循 E-A-T 原则(专业性、权威性、可信度),结合官方文档和最佳实践,提供系统化指南,基础概念与准备终端与 Shell终端:输入命令的界面(如 GNOME Terminal、Konsole),Shell:命令解释器(常用 Bash 或 Z……

    2025年6月20日
    6200
  • Linux系统中安装配置cgroup的具体步骤和方法有哪些?

    Linux中的cgroup(control group,控制组)是内核提供的一种资源管理机制,能够限制、审计和隔离进程组所使用的物理资源(如CPU、内存、磁盘I/O、网络带宽等),通过cgroup,用户可以精细化管理系统资源,实现资源配额、优先级控制及容器化隔离等场景,以下将详细介绍Linux环境下cgroup……

    2025年8月24日
    3400
  • 移除MySQL核心组件后果如何?

    在Linux系统中彻底卸载MySQL需要谨慎操作,确保完全移除相关组件以避免残留文件影响后续使用,以下是针对不同发行版的详细步骤,操作前务必备份重要数据:卸载前准备停止MySQL服务sudo systemctl stop mysql # 或 mysqldsudo systemctl disable mysql……

    2025年7月19日
    5400
  • 针对Linux系统,攻击者如何利用漏洞?入侵手段与防范方法有哪些?

    Linux系统因其稳定性、灵活性和开源特性,被广泛应用于服务器、嵌入式设备及桌面环境,但同时也成为攻击者的目标,攻击Linux系统通常涉及多个阶段,从信息收集到权限维持,每个环节都可能利用系统配置漏洞、软件缺陷或用户行为疏忽,本文将从攻击者的视角拆解常见攻击路径,并重点阐述防御策略,帮助理解系统安全防护的核心逻……

    2025年8月26日
    3300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信