你更愿意要钱还是自由?

挂起进程的原理

Linux通过信号(Signal)控制进程状态:

  • SIGSTOP (19):强制暂停进程(不可被进程忽略)。
  • SIGCONT (18):恢复被暂停的进程。
  • SIGTSTP (20):终端发出的暂停信号(可被进程捕获处理)。

操作步骤

查找目标进程ID(PID)

使用 pspgrep 定位进程:

ps aux | grep "进程名"  # 示例:ps aux | grep nginxpgrep -f "进程名"      # 示例:pgrep -f python

输出示例:

ubuntu   12345  0.5  1.2 215000 9400 ?        Sl   10:00   0:01 nginx: worker process

此处 12345 即目标PID。

挂起进程

通过 kill 命令发送 SIGSTOP 信号:

kill -SIGSTOP 12345  # 将12345替换为实际PID

或使用信号编号:

kill -19 12345

验证进程状态

检查进程是否暂停:

ps -o pid,state,cmd -p 12345

输出中 STATE 列为 T(暂停)或 T+(前台暂停)即表示成功。

恢复进程

发送 SIGCONT 信号恢复运行:

kill -SIGCONT 12345  # 或 kill -18 12345

其他挂起方法

方法1:通过作业控制(适用于前台进程)

  1. 运行程序(如 ./my_script.sh)。
  2. Ctrl+Z 发送 SIGTSTP 信号挂起。
  3. 输入 bg 切到后台运行,或 fg 恢复前台。

方法2:使用 pkillkillall(按进程名操作)

pkill -STOP "进程名"    # 挂起:pkill -19 "nginx"
killall -SIGCONT "进程名" # 恢复

注意事项

  1. 权限要求

    • 普通用户只能挂起自己的进程。
    • 系统进程需 sudo 权限(如 sudo kill -19 PID)。
  2. 风险规避

    • 关键服务(如数据库)挂起可能导致数据丢失,务必提前保存状态。
    • 避免挂起系统核心进程(如 systemdinit)。
  3. 状态确认

    • 挂起后进程仍占用内存,但停止CPU占用。
    • 长期暂停可能触发系统监控告警(如 systemd 重启服务)。
  4. 信号选择

    • SIGSTOP(19)确保立即暂停(推荐)。
    • SIGTSTP(20)允许进程清理后暂停(如保存临时文件)。

典型应用场景

  • 资源调控:暂停非紧急任务(如备份脚本),保障高优先级进程运行。
  • 调试程序:冻结进程状态以检查内存或文件句柄。
  • 批量管理:结合脚本暂停/恢复一组进程(如 pkill -STOP -f "pattern")。

挂起Linux进程的核心是 kill -19 PID(暂停)kill -18 PID(恢复),操作前务必确认PID准确性,并评估对系统的影响,对于生产环境,建议在测试后操作,或使用进程管理工具(如 systemctl pause 服务)实现更安全的控制。

引用说明基于Linux内核信号处理机制(参见 man 7 signal)及GNU Coreutils工具集(killps等)的官方文档,实践方法参考Linux系统管理员社区(如Server Fault)的通用操作规范。

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

(0)
酷番叔酷番叔
上一篇 2025年7月31日 11:17
下一篇 2025年7月31日 11:31

相关推荐

  • Linux如何查看Oracle数据库版本?

    通过SQL*Plus执行查询(推荐首选)适用场景:已安装Oracle客户端或能连接数据库实例权限要求:具有数据库连接权限的用户(如sysdba)sqlplus / as sysdba # 以操作系统认证登录SQL> SELECT * FROM v$version;输出示例:Oracle Database……

    2025年7月10日
    16900
  • Linux系统下如何正常观看视频?

    在Linux系统中观看视频是许多用户的日常需求,无论是本地视频文件、在线流媒体还是高清蓝光资源,Linux都提供了多样化的解决方案,本文将详细介绍Linux环境下观看视频的常用方法、播放器选择、格式支持、硬件加速优化及常见问题处理,帮助用户根据自身需求选择最合适的方案,桌面环境下的视频播放器选择Linux桌面环……

    2025年9月26日
    26900
  • Linux如何复制文件夹?命令及操作步骤详解

    在Linux系统中,复制文件夹是日常操作中非常常见的需求,无论是备份文件、迁移数据还是整理目录结构,都需要掌握高效的文件夹复制方法,Linux提供了多种命令来实现文件夹复制,其中最常用的是cp命令和rsync命令,两者各有特点,适用于不同的场景,本文将详细介绍这两种命令的使用方法、常用选项及实际应用场景,帮助用……

    2025年9月22日
    12600
  • 配置参数怎么选最省钱?

    在Linux系统中测试UDP(用户数据报协议)发包是网络调试、应用开发和性能评估的关键操作,UDP作为无连接的轻量级协议,常用于实时性要求高的场景(如视频流、DNS查询),以下详细介绍多种专业测试方法,均经过实际验证,确保安全可靠,测试前的必要准备防火墙配置临时关闭防火墙(测试后请重新启用):sudo ufw……

    2025年7月19日
    15000
  • 如何在Ubuntu/Debian安装Tmux?

    终端分屏:使用 Tmux(推荐)Tmux 是专业的终端复用工具,支持持久化会话和复杂分屏,基础操作:# 启动新会话tmux new -s mysession# 分屏快捷键(需先按Ctrl+B激活)Ctrl+B % # 垂直分割(左右分屏)Ctrl+B " # 水平分割(上下分屏)Ctrl+B 方向键……

    2025年8月7日
    14900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信