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

相关推荐

  • Ubuntu 24.04值得升级吗?

    在Linux系统中运行PHP是构建动态网站和Web应用的基础操作,Linux因其稳定性、安全性和开源生态,成为部署PHP的首选平台,以下将详细说明从环境配置到运行测试的全流程,涵盖主流Web服务器(Apache与Nginx)的配置方法,并提供关键优化建议,运行PHP的核心步骤安装PHP通过Linux包管理器安装……

    2025年7月15日
    12800
  • Linux如何搭建Web服务器?详细步骤与方法是什么?

    在Linux系统中搭建Web服务器是运维和开发中的常见需求,Linux凭借其稳定性、安全性和开源特性,成为Web服务部署的首选平台,本文将以主流的Ubuntu/Debian和CentOS/RHEL系统为例,详细介绍使用Apache和Nginx两种常见Web服务器软件搭建Web服务器的完整流程,包括环境准备、软件……

    2025年8月30日
    11200
  • 编写Linux程序的关键步骤与基础方法有哪些?

    在Linux环境下编写程序,通常涉及从环境搭建到代码编写、编译调试、部署维护的全流程,Linux作为开源操作系统,其工具链和系统调用为程序开发提供了强大支持,以下是详细步骤和关键要点,开发环境准备Linux程序开发需先安装必要的工具链,以C语言为例,常用工具包括GCC(编译器)、GDB(调试器)、Make(构建……

    2025年10月1日
    9400
  • linux终端如何访问网站

    在Linux操作系统中,终端(命令行界面)是系统管理和自动化任务的核心工具之一,虽然图形化浏览器提供了更直观的网页浏览体验,但在服务器管理、脚本开发、网络调试等场景下,通过终端访问网站具有高效、轻量、可自动化等优势,本文将详细介绍Linux终端中访问网站的多种方法,包括常用命令行工具的使用技巧、参数配置及实际应……

    2025年8月26日
    10600
  • 如何修改Linux系统的path变量并使其永久生效?

    在Linux系统中,PATH环境变量是一个重要的配置,它定义了系统在执行命令时搜索可执行文件的路径列表,当用户输入一个命令(如ls、grep)时,系统会按照PATH变量中指定的路径顺序依次查找对应的可执行文件,如果程序所在的路径不在PATH中,就需要输入完整的绝对路径或相对路径才能执行,合理配置PATH变量可以……

    2025年9月9日
    10600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信