2014-02-18 52 views
0

我认为这是非常简单的问题,但无法在任何地方找到解决方案。我必须像jenkins那样运行我的jenkins plist文件(或者.jar文件),而不是作为管理员。这是我的文件怎么看现在:作为jenkins开始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> 

我尝试添加命令切换到与詹金斯:

须藤苏詹金斯

所以我尝试添加这样的事情:

<key>Jenkins user</key> 
     <string>what.to.put.here</string> 
     <key>OtherArguments</key> 
     <array> 
      <string>sudo</string> 
      <string>su</string> 
      <string>jenkins</string> 
     </array> 

在上面的那些行之前,但正如我所看到的,我仍然没有登录为j enkins。当我从命令行执行这些命令时,我写了这些命令 - 比起它的作用,但我希望它在系统启动时运行。

编辑

gaige回答我说:

,但我仍然没有权限到目录到詹金斯用户。

回答

0

如果您使用的是系统launchctl的plist,那么你可以添加UserName键:

在同一水平作为plist中的其他键。然后删除所有的sudo相关的东西。

请注意,这必须是系统启动(位于/System/Library/LaunchDaemon/Library/LaunchDaemon),否则您将无权使用有问题的用户。

+0

好吧,我很新的mac - 如何区别系统launchdaemon从其他人?或者你的意思是完全system.plist或类似的东西? – mmmm

+0

如果它位于'/ System/Library/LaunchDaemons /'中,那么它是一个系统launchdaemon。如果它位于主目录的'Library/LaunchDameons'或'Library/LaunchAgents'文件夹中,那么它就是个人plist。 – gaige

+0

它位于/ Library/LaunchDaemons中。有什么办法可以解决这个问题吗? – mmmm