我认为这是一个很简单的问题,但在任何地方都找不到解决办法。我必须将我的jenkins文件(或者仅仅是.jar文件)运行为jenkins,而不是管理员。我的文件现在是这样的:
<key>Label</key>
<string>com.example.ci</string>
<key>ProgramArguments</key>
<array>
<string>sudo</string>
<string>/usr/bin/java</string>
<string>-Djava.awt.headless=true</string>
<string>-jar</string>
<string>/Users/Shared/Jenkins/Home/slave.jar</string>
<string>-jnlpUrl</string>
<string>http://[adres]/slave-agent.jnlp
</string>
<string>-secret</string>
<string>841557ed784ead7secret[334b3ac76fe1618e375
</string>
</array>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/Shared/Jenkins/Home/stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/Shared/Jenkins/Home/error.log</string>我试图添加命令以切换到jenkins,并使用:
苏贞金斯
所以我试着添加这样的东西:
<key>Jenkins user</key>
<string>what.to.put.here</string>
<key>OtherArguments</key>
<array>
<string>sudo</string>
<string>su</string>
<string>jenkins</string>
</array>在上面的那些行之前,但我看到我还没有以詹金斯的身份登录。当我在命令行中使用我编写的那些命令时,这比它的工作更有效,但我希望它在系统启动时运行。
编辑:
在gaige回答之后,我补充道:
<key>UserName</key>
<string>jenkins</string>但我仍然没有对jenkins用户拥有的目录的权限。
发布于 2014-02-18 15:32:11
如果您使用的是系统launchctl plist,那么只需添加UserName键:
<key>UserName</key>
<string>jenkins</string>和你在折叠式中的其他键处于同一水平。然后删除所有与sudo相关的内容。
注意,这必须是一个系统启动(位于/System/Library/LaunchDaemon或/Library/LaunchDaemon中),否则您将没有使用该用户的权限。
https://stackoverflow.com/questions/21857432
复制相似问题