macOS 系统设置息屏情况下,PHP等后台脚本继续执行
在 macOS 系统下,当屏幕息屏或合上盖子时,后台脚本程序是否会继续运行,主要取决于以下几个因素:
1. 系统睡眠状态的影响
- 默认情况:合盖/息屏后,Mac 会进入「睡眠模式」(部分硬件休眠),此时:
- CPU 任务:后台脚本(如 Python、Shell 脚本)通常会被暂停。
- 网络请求:未完成的网络连接可能中断。
- 例外情况:如果启用了「防止睡眠」模式,脚本会继续运行。
2. 如何保持脚本持续运行
✅ 方法 1:使用 caffeinate 命令(系统自带)
# 运行脚本时阻止睡眠(直到脚本结束) caffeinate -s ./your_script.sh # 或者永久阻止睡眠(需手动终止) caffeinate -dims & ./your_script.sh
参数说明:
- -d:阻止显示器睡眠
- -i:阻止系统空闲睡眠
- -m:阻止磁盘睡眠
- -s:阻止系统睡眠(合盖仍有效)
✅ 方法 2:修改能源管理设置
# 临时禁用睡眠(需 sudo 密码) sudo systemsetup -setcomputersleep Never # 恢复默认设置 sudo systemsetup -setcomputersleep 30
✅ 方法 3:使用 tmux 或 nohup
# 使用 tmux(推荐) tmux new -s mysession ./your_script.sh # 按 Ctrl+B → D 脱离会话(脚本继续运行) # 使用 nohup nohup ./your_script.sh &
3. 验证脚本是否在后台运行
# 查看所有进程 ps aux | grep your_script # 查看系统睡眠状态 pmset -g assertions
如果输出中包含 PreventUserIdleSystemSleep,说明防睡眠已生效。
4. 常见问题解决
-
问题:合盖后 SSH 断开导致脚本终止
方案:通过 tmux/screen 运行脚本,或使用内网穿透工具(如 frp)。
-
问题:依赖 GUI 的脚本失败
方案:改用无头模式(如 headless 浏览器)或 CLI 工具。
5. 自动化建议
如果需要长期运行后台任务,建议:
- 用 launchd 配置守护进程:
Label your.script ProgramArguments /path/to/your_script.sh RunAtLoad KeepAlive
- 加载配置:
launchctl load ~/Library/LaunchAgents/your.script.plist
📌 总结表:Mac 息屏后脚本运行方案
方案 是否需要命令 合盖后效果 适用场景 caffeinate 需要 持续运行 临时任务 修改 systemsetup 需要 sudo 持续运行 长期任务(需手动恢复) tmux/nohup 需要 可能暂停 远程 SSH 任务 launchd 守护进程 配置一次 持续运行 生产环境长期运行 systemsetup使用方法
在 macOS 中,systemsetup 是一个强大的命令行工具,用于配置系统级别的硬件和能源设置。以下是关于 systemsetup 的详细使用方法和常见场景:
1. 基本命令语法
sudo systemsetup -set sudo systemsetup -get
⚠️ 需要管理员权限(sudo)
2. 常用命令示例
🔹 睡眠与唤醒控制
功能 命令 备注 禁用睡眠 sudo systemsetup -setcomputersleep Never 合盖/息屏不睡眠 设置睡眠时间 sudo systemsetup -setcomputersleep 30 30分钟后睡眠 禁用显示器睡眠 sudo systemsetup -setdisplaysleep Never 仅屏幕不关闭 获取当前设置 sudo systemsetup -getcomputersleep 查看睡眠超时 🔹 网络唤醒(Wake-on-LAN)
# 启用网络唤醒 sudo systemsetup -setwakeonnetworkaccess on # 检查状态 sudo systemsetup -getwakeonnetworkaccess
🔹 时间同步
# 使用NTP时间同步 sudo systemsetup -setnetworktimeserver time.apple.com sudo systemsetup -setusingnetworktime on
🔹 启动磁盘设置
# 指定启动磁盘 sudo systemsetup -setstartupdisk /Volumes/macOS # 列出可用启动磁盘 sudo systemsetup -liststartupdisks
3. 能源管理相关命令
查看所有能源设置:
pmset -g
单独配置电池/电源适配器模式:
# 电池模式下不休眠 sudo pmset -b sleep 0 # 电源适配器模式下不休眠 sudo pmset -c sleep 0
4. 实用技巧
🔸 防止合盖睡眠(同时允许其他睡眠)
# 合盖时不睡眠(需重启生效) sudo pmset -a disablesleep 1 # 恢复默认 sudo pmset -a disablesleep 0
🔸 SSH远程唤醒
# 允许SSH唤醒(需先启用网络唤醒) sudo systemsetup -setremoteappleevents on
🔸 日志查看
# 查看睡眠/唤醒日志 log show --predicate 'eventMessage contains "Sleep"' --last 24h
5. 恢复默认设置
# 恢复所有睡眠设置默认值 sudo pmset -a restoredefaults
⚠️ 注意事项
- 部分设置需要重启生效
- 长期禁用睡眠可能导致过热
- 使用 -a 参数表示所有电源模式(-b=电池,-c=电源适配器)
6. 图形化替代方案
如果不想用命令行,可以通过以下路径修改:
- 系统设置 > 电池 > 调整睡眠时间
- 系统设置 > 锁定屏幕 > 关闭「睡眠时锁定屏幕」
通过 systemsetup 和 pmset 的组合使用,你可以精准控制 Mac 的睡眠行为,满足后台脚本持续运行的需求。
- 用 launchd 配置守护进程:
-
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。