Bitbucket Runner在macOS无法持续运行,LaunchAgents配置无效求助
解决macOS上Bitbucket Runner持续运行的LaunchAgents配置问题
现有配置的核心问题
你的两个plist配置都存在关键错误:
- 第一个配置:缺少
KeepAlive键,进程意外退出后无法自动重启;未配置日志输出,无法排查启动失败原因;bash --login会引入不必要的全局环境变量,可能干扰Runner运行。 - 第二个配置:
ProgramArguments格式错误——命令和每个参数必须单独作为数组元素,不能把整段启动命令合并成一个字符串;额外添加的run参数属于冗余;/var/log/目录普通用户无写入权限,日志无法生成,无法定位问题。
修正后的LaunchAgent配置
创建~/Library/LaunchAgents/com.bitbucket.pipelines.runner.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.bitbucket.pipelines.runner</string> <!-- Label必须和文件名完全一致 --> <key>RunAtLoad</key> <true/> <!-- 用户登录时自动启动 --> <key>KeepAlive</key> <dict> <key>SuccessfulExit</key> <false/> <!-- 进程异常退出时自动重启;若需要正常退出也重启,直接设为<true/> --> </dict> <key>WorkingDirectory</key> <string>/Users/ciagent/atlassian-bitbucket-pipelines-runner/bin</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>-c</string> <string>./start.sh --accountUuid {...} --repositoryUuid {...} --runnerUuid {...} --OAuthClientId ... --OAuthClientSecret ... --runtime macos-bash --workingDirectory ../temp</string> </array> <!-- 日志写入用户目录,避免系统目录权限问题 --> <key>StandardErrorPath</key> <string>/Users/ciagent/Library/Logs/bitbucket-runner-error.log</string> <key>StandardOutPath</key> <string>/Users/ciagent/Library/Logs/bitbucket-runner.log</string> <!-- 指定运行用户,避免权限混淆 --> <key>UserName</key> <string>ciagent</string> </dict> </plist>
配置与验证步骤
设置正确的文件权限:
chmod 644 ~/Library/LaunchAgents/com.bitbucket.pipelines.runner.plistLaunchAgent文件必须是644权限,否则会被launchd拒绝加载。
加载配置:
launchctl load ~/Library/LaunchAgents/com.bitbucket.pipelines.runner.plist无输出通常表示加载成功,若失败会直接返回错误信息。
验证进程状态:
launchctl list | grep com.bitbucket.pipelines.runner输出中
PID不为0表示进程正在运行;若Status不为0,直接查看日志文件排查错误。设置开机自动启动:
launchctl enable gui/$(id -u ciagent)/com.bitbucket.pipelines.runner
常见问题排查
- 若加载后进程未启动,优先查看
~/Library/Logs/bitbucket-runner-error.log,大概率是路径错误、环境变量缺失或OAuth参数配置问题。 - 若日志提示权限不足,检查
WorkingDirectory和日志目录的权限,确保ciagent用户有读写权限。 - 可以手动切换到
WorkingDirectory路径下,执行ProgramArguments里的bash命令,确认手动运行正常。
内容的提问来源于stack exchange,提问作者Alex Pătroi
相关产品推荐
相关产品推荐

