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

    备份重要数据,准备U盘启动盘,下载合适Linux镜像,通过U盘引导安装

    2025年8月17日
    8000
  • 如何查看网卡enp0s3驱动?

    核心命令行工具lsmod:查看已加载的驱动模块命令:lsmod输出示例:Module Size Used bynvidia 35323904 203iwlmvm 495616 0…解读:Module:驱动名称(如 nvidia 为显卡驱动),Used by:依赖该模块的进程或模块数量,lspci:查看PCI……

    2025年8月3日
    8700
  • 如何在Linux中安全获取root权限?

    推荐方法:使用 sudo 命令(无需切换用户)适用场景:临时执行单条特权命令(最安全且推荐的方式)操作步骤:在终端输入命令前添加 sudo: sudo 你的命令sudo apt update # 示例:更新软件包列表输入当前用户的密码(非root密码),验证后即临时获得root权限执行该命令,权限有效期:默认1……

    2025年7月2日
    11100
  • Linux如何查看映射关系?

    在Linux系统中,“映射”是一个广义概念,涵盖网络端口映射、进程与文件的映射、内存映射、网络连接映射等多个场景,不同场景下查看映射的方法各有侧重,本文将详细介绍常见映射类型的查看方式,包括命令工具、输出解析及实际示例,网络端口映射查看网络端口映射通常指通过NAT(网络地址转换)将内网服务端口映射到公网IP或本……

    2025年10月8日
    5600
  • Linux如何格式化分区?具体步骤与注意事项有哪些?

    在Linux系统中,格式化分区是磁盘管理的基础操作,其本质是为分区建立文件系统,以便操作系统识别和管理数据,格式化会清空分区内的所有数据,因此操作前务必确认分区内容已备份或为全新磁盘,以下是详细的格式化分区流程及注意事项,格式化前的准备工作确认分区信息在格式化前,需明确目标分区的设备名(如/dev/sdb1……

    2025年8月29日
    9600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信