MacOS中RunAtLoad=false设置无效,cloudflared仍开机启动求助
解决MacOS上cloudflared守护进程开机自动启动问题
你的问题核心出在KeepAlive配置上——虽然已经将RunAtLoad设为false,但当前的KeepAlive规则会让launchd持续维持进程运行,甚至在开机时自动恢复进程。以下是具体解决步骤:
1. 停止当前运行的cloudflared进程
执行命令停止正在运行的守护进程:
launchctl stop com.cloudflare.cloudflared
2. 修改plist配置文件
编辑/Library/LaunchDaemons/com.cloudflare.cloudflared.plist,调整KeepAlive配置:
- 方案一:直接将
KeepAlive设为false,替换原有的字典配置:<key>KeepAlive</key> <false/> - 方案二:完全删除整个
KeepAlive键值对(如果不需要任何自动重启逻辑)
修改后的完整plist示例(方案一):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.cloudflare.cloudflared</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/cloudflared</string> <string>tunnel</string> <string>run</string> <string>--token</string> <string>[token]</string> </array> <key>RunAtLoad</key> <false/> <key>StandardOutPath</key> <string>/Library/Logs/com.cloudflare.cloudflared.out.log</string> <key>StandardErrorPath</key> <string>/Library/Logs/com.cloudflare.cloudflared.err.log</string> <key>KeepAlive</key> <false/> <key>ThrottleInterval</key> <integer>5</integer> </dict> </plist>
3. 重新加载launchd配置
让修改后的配置生效,先卸载再加载plist:
launchctl unload /Library/LaunchDaemons/com.cloudflare.cloudflared.plist launchctl load /Library/LaunchDaemons/com.cloudflare.cloudflared.plist
4. 验证禁用效果
重启系统后,执行以下命令检查cloudflared是否自动启动:
ps aux | grep cloudflared
如果输出中只有grep相关的进程,说明开机自动启动已被禁用。
手动启停命令
- 启动cloudflared:
launchctl start com.cloudflare.cloudflared - 停止cloudflared:
launchctl stop com.cloudflare.cloudflared
内容的提问来源于stack exchange,提问作者Giuseppe Lanzi
相关产品推荐
相关产品推荐

