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

Bitbucket Runner在macOS无法持续运行,LaunchAgents配置无效求助

解决macOS上Bitbucket Runner持续运行的LaunchAgents配置问题

现有配置的核心问题

你的两个plist配置都存在关键错误:

  1. 第一个配置:缺少KeepAlive键,进程意外退出后无法自动重启;未配置日志输出,无法排查启动失败原因;bash --login会引入不必要的全局环境变量,可能干扰Runner运行。
  2. 第二个配置: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>

配置与验证步骤

  1. 设置正确的文件权限:

    chmod 644 ~/Library/LaunchAgents/com.bitbucket.pipelines.runner.plist
    

    LaunchAgent文件必须是644权限,否则会被launchd拒绝加载。

  2. 加载配置:

    launchctl load ~/Library/LaunchAgents/com.bitbucket.pipelines.runner.plist
    

    无输出通常表示加载成功,若失败会直接返回错误信息。

  3. 验证进程状态:

    launchctl list | grep com.bitbucket.pipelines.runner
    

    输出中PID不为0表示进程正在运行;若Status不为0,直接查看日志文件排查错误。

  4. 设置开机自动启动:

    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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:21:21