You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本执行Deep Suspend/Resume卡顿,终端执行正常求助

解决脚本执行深度挂起卡顿但终端直接执行正常的问题

从日志对比能明显看到:脚本执行时系统挂起流程卡在OOM killer disabled步骤,而终端直接执行可完整完成剩余任务冻结、设备挂起/恢复全流程。核心差异在于脚本作为独立进程运行时,可能持有终端相关资源或处于特定进程组,导致内核无法顺利完成用户进程冻结流程。

以下是具体解决建议:

方案1:重定向脚本所有输入输出

修改脚本,断开与终端的IO关联,避免终端资源阻塞挂起流程:

#!/bin/bash

# 设置RTC唤醒闹钟(建议>前加空格,避免解析歧义)
echo +30 > /sys/class/rtc/rtc0/wakealarm

# 关闭标准输入,重定向输出/错误到空设备
exec 0>&- 1>/dev/null 2>&1

# 触发深度挂起
echo "mem" > /sys/power/state

方案2:脱离终端运行脚本

无需修改脚本,直接用工具让脚本脱离终端会话执行:

# 方法1:用setsid完全脱离终端
setsid ./sus-res.sh

# 方法2:用nohup后台运行(会生成nohup.out日志文件)
nohup ./sus-res.sh &

方案3:以系统服务方式运行

利用systemd-run将脚本作为临时系统服务运行,完全脱离用户终端环境:

systemd-run --unit=suspend-task ./sus-res.sh

额外检查点

  • 确保脚本拥有执行权限:执行chmod +x sus-res.sh;
  • 确认以root身份执行脚本,保证对/sys/class/rtc/rtc0/wakealarm和/sys/power/state的读写权限。

内容的提问来源于stack exchange,提问作者Jaff_NL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:25:15