如何在启动时在OS X中自动启动gerrit?

时间:2013-08-31 21:35:40

标签: macos plist osx-mountain-lion gerrit launchd

正如标题所说,我一直在尝试在我的OS X盒子(Mountain Lion)上设置一个gerrit(2.6.1)服务器。一切正常,但我不能让它在启动时自动启动。

理想情况下,我希望它使用plist文件作为launchd的一部分启动,但我似乎无法找到有关它的更多信息。那些可以帮助我让gerrit在启动时自动启动的专家呢?

我能够使用plist文件启动apache / mysql,所以我也确保gerrit在这些之后启动。谢谢!

2 个答案:

答案 0 :(得分:0)

到目前为止,我能够提出的最佳解决方案就是这个,它完成了这项工作:

  1. 创建包装脚本:

    /opt/gerrit2/bin/gerrit.sh start

  2. 将.command扩展名放到包装器脚本 - “start_gerrit.command”并使其可执行

  3. 在系统偏好设置中 - >用户&群组 - >登录项目,添加包装脚本。

  4. 现在,只要我登录,gerrit就会自动启动。

    我真的想让它在使用launchd plist的系统启动时运行,但我无法让它工作。另外,如果我只是做“sudo gerrit.sh start”,它总是因为某种原因把我带到root提示符,我必须“退出”:

    Mac:~ me$ sudo /opt/gerrit2/bin/gerrit.sh start
    Starting Gerrit Code Review: Mac:~ root# 
    Mac:~ root# 
    Mac:~ root# exit
    logout
    FAILED
    Mac:~ me$ 
    

    如果有人有更好的解决方案,请分享,谢谢!

答案 1 :(得分:0)

刚刚设法在OSX Yosemite(10.10)下运行并运行。

首先,我向用户提供了ger运行gerrit,其中包含gerrit安装到/etc/gerrit2的目录的所有权限。那,我做了$GERRIT_HOME/bin/gerrit.sh可执行文件。在此之后,您应该能够从您想要使用$GERRIT_HOME/bin/gerrit.sh start下运行gerrit的用户启动gerrit。

然后在系统引导期间启动它,在/Library/LaunchDaemons中创建一个launchd plist(我将其命名为com.gerrit.codereview.plist。确保它具有正确的权限sudo chown root /Library/LaunchDaemons/com.gerrit.codereview.plistsudo chmod -rw-r--r-- /Library/LaunchDaemons/com.gerrit.coderview.plist

之后,确保com.gerrit.codereview.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.gerrit.codereview</string>
    <key>ProgramArguments</key>
    <array>
        <string>$GERRIT_HOME/bin/gerrit.sh</string>
        <string>start</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>$USER_TO_RUN_GERRIT_WITH</string>
    <key>WorkingDirectory</key>
    <string>$GERRIT_HOME</string>
    <key>StandardOutPath</key>
    <string>$GERRIT_HOME/logs/error_log</string>
    <key>StandardErrorPath</key>
    <string>$GERRIT_HOME/logs/error_log</string>
    <key>AbandonProcessGroup</key>
    <true/>
</dict>
</plist>

将所有变量替换为与您的配置匹配的路径。如果您希望Gerrit以root身份运行,则可以完全省略Username键。

然后通过加载sudo launhctl load /Library/LaunchDaemons/com.gerrit.codereview.plist并启动它sudo launchctl start com.gerrit.codereview来验证launchd配置是否有效。这样做之后,gerrit应该可以通过它的web界面运行和访问。