2

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

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

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

4

2 回答 2

0

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

首先,我为我运行 gerrit 的用户授予了我安装 gerrit 的目录的所有权限/etc/gerrit2。那,我制作了$GERRIT_HOME/bin/gerrit.sh可执行文件。在此之后,您应该能够从您希望运行 gerrit 的用户启动 gerrit $GERRIT_HOME/bin/gerrit.sh start

然后让它在系统启动期间启动,在/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然后通过加载并启动它来验证launchd 配置是否有效sudo launchctl start com.gerrit.codereview。完成此操作后,gerrit 应该可以通过其 Web 界面运行和访问。

于 2014-11-15T16:19:10.063 回答
0

到目前为止,我能想出的最好的解决方案是这个,它可以完成这项工作:

  1. 创建一个包装脚本:

    /opt/gerrit2/bin/gerrit.sh 启动

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

  3. 在 System Preferences -> User & Groups -> Login Items 中,添加包装脚本。

现在,只要我登录,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$ 

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

于 2013-09-01T16:27:18.693 回答