在Bamboo上运行作业“没有特权删除服务”。在osx上

时间:2016-09-28 08:56:16

标签: macos service bamboo access-rights

当我运行脚本时:

launchctl remove com.apple.CoreSimulator.CoreSimulatorService

在构建机器上的终端上它工作正常,但是当我从竹子运行它失败并且在日志中我看到“没有特权去除服务。”。我试着回复用户ID,它在终端和竹子日志中是相同的。我不明白为什么会这样。拜托,你知道怎么解决吗?它也不适用于sudo。

4 个答案:

答案 0 :(得分:1)

根据 Bruce Tu 的回答:

  

您的Bamboo-Agent作为 launchDaemon 运行,而不是 launchAgent

要解决此问题,您必须将com.atlassian.bamboo-agent.plist文件从/Library/LaunchDaemons移至/Library/LaunchAgents并重新启动服务器。

然后,您可以将其添加到Bamboo构建脚本中以解决CoreSimulator问题:

killall -9 com.apple.CoreSimulator.CoreSimulatorService || true
launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true

答案 1 :(得分:0)

我在Jenkins构建中遇到了同样的问题。我的解决方案也可能适用于Bamboo。 我通过在构建开始之前运行的shell脚本中运行以下代码来解决它。

这假设您不必输入密码即可允许sudo。 如果没有,它也可以工作,你可以chown -R用户:将执行查杀/删除的组。

希望这有帮助。

    sudo chmod -R g-w $(xcode-select -p)/Library/PrivateFrameworks/CoreSimulator.framework/Versions/A/XPCServices/com.apple.CoreSimulator.CoreSimulatorService.xpc 
    sudo chown -R root:wheel $(xcode-select -p)/Library/PrivateFrameworks/CoreSimulator.framework/Versions/A/XPCServices/com.apple.CoreSimulator.CoreSimulatorService.xpc 
    sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService || true
    sudo launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true

答案 2 :(得分:0)

我在Mac上的Bamboo尝试运行命令时遇到了同样的问题

launchctl remove com.apple.CoreSimulator.CoreSimulatorService

问题是我将Bamboo设置为LaunchDaemon而不是LaunchAgent。 LaunchAgent无法访问诸如iOS模拟器,配置文件,权限问题等内容。在我停止LaunchDaemon服务并将Bamboo设置为LaunchAgent后,我能够运行该命令。

有关LaunchDaemon与LaunchAgent的更多信息,请参阅: http://mgrebenets.github.io/mobile%20ci/2015/02/01/mobile-ci-daemon-vs-agent

答案 3 :(得分:0)

尝试使用 sudo -u"USER" launchctl remove <service> 在根上下文中启动 LaunchAgent 时遇到相同的错误。

这里的问题是 sudo -u 不适用于所有情况(例如:当它用于软件包的 postinstall 脚本时)。

解决方案:

使用 sudo -ulaunchctl asuser <userId> 的组合

launchctl asuser <uid> sudo -u <uName> launchctl load -S Aqua -w "/Library/LaunchAgents/<plist>"

该组合保证有效。