web-dev-qa-db-ja.com

Ubuntuでの起動時にFishEye + Crucibleを起動する

私はこの質問をしました Atlassianで しかし、それはAtlassianの質問よりもシステム管理者の質問であるため、serverfaultの方が適切かもしれません。

私はFishEye + Crucibleを起動時に開始するために、 このガイド に従うことを試みてきました。 JIRAは、起動時にUbuntuに独自のユーザー(jira)として既にインストールされて実行されていますが、Fisheye + Crucible(別名fecru)に同じことをさせることはできません。

そこでの指示(およびページのコメントにあるUbuntu関連のメモ)に従って再起動しました。JIRAは通常どおり独自に起動しましたが、fecruは起動しませんでした。 'jira'に設定したRUN_AS変数と関係がありますか?そのコマンドは、ユーザー「jira」のパスワードを要求せずに起動時に実行されますか?プログラムJIRAはそのユーザーとして正常に起動すると起動するため、プロンプトが表示されないことがわかりました...

使用:

Ubuntu 10.04 Lucid

Jira 5.0

Crucible + Fisheye 2.7.11

6
xref

この質問が再び表示され、主要なディストリビューションによるsystemdへの切り替え以降、回答が古くなったため、JIRAのsystemdサービス定義を追加します。

/ etc/systemd/system/jira.service

[Unit]
Description=Atlassian JIRA
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/jira
ExecStart=/path/to/jira/bin/startup.sh
ExecStop=/path/to/jira/bin/shutdown.sh
PIDFile=/path/to/jira/work/catalina.pid
SuccessExitStatus=143
User=jira
Group=jira
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

/ etc/sysconfig/jira

# Name of the user to run as
USER=jira
# Location of application's bin directory
CATALINA_HOME=/path/to/jira
# Location of Java JDK
export Java_HOME=/usr/lib/jvm/Java-8-Oracle

/path/to/jiraをアプリケーションディレクトリに置き換えます。

他のAtlassianツールの場合、基本的に同じですが、起動スクリプトとPIDファイルの場所がわずかに異なります。

  • 合流

    • $appdir/bin/startup.sh
    • $appdir/bin/shutdown.sh
    • $appdir/work/catalina.pid
  • FishEye

    • $appdir/bin/start.sh
    • $appdir/bin/stop.sh
    • $appdir/bin/start-bamboo.sh
    • $appdir/bin/stop-bamboo.sh
  • 群集

    • $appdir/bin/startup.sh
    • $appdir/bin/shutdown.sh
    • $appdir/Apache-Tomcat/work/catalina.pid

FishEye まだPIDファイルをサポートしていません したがって、現在、その問題の回避策を使用して、この行をnohopコマンドの後にfisheyectl.shに追加する必要があります。 :

echo $! > $FISHEYE_INST/var/fisheye.pid

Bambooの場合、PIDファイルはCATALINA_PID変数を介して明示的に定義する必要があります($appdir/bin/catalina.shを参照)。まだテストしていませんが、この変数をEnvironmentFileファイルに設定できるはずです。

サービス定義が作成された後:

# start JIRA
Sudo systemctl start jira
# enable automatic start on boot
Sudo systemctl enable jira
1

私が使用するinitスクリプトの関連ビット:

case "$1" in
    start)
        Sudo -u fisheye /path/to/fisheye/startf.sh

    stop)
        Sudo -u fisheye /path/to/fisheye/stopf.sh
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac

Startf.shの内容:

source /home/fisheye/.profile
$FISHEYE_HOME/bin/start.sh

stopf.sh:

source /home/fisheye/.profile
$FISHEYE_HOME/bin/stop.sh

.profileの関連コンテンツ:

export Java_HOME=/path/to/Java/
export FISHEYE_OPTS="-Xms512m -Xmx4800m -XX:MaxPermSize=512m"
export FISHEYE_HOME=/home/fisheye/fecru-x.x.x
export FISHEYE_INST=/home/fisheye/inst-example

もちろん、魚眼レンズで提供される開始スクリプトと停止スクリプトにソース.profileステートメントを追加することもできますが、それはアップグレード後に再度編集する必要があることを意味します。魚眼レンズのファイルはできるだけ変更しないようにしました。

0
aseq

これは古いスレッドだと思いますが、答えが見つからなかったので、次のようにします。

fisheyectl.shを編集し、Nohup sh -c "exec $CMD" >> $FISHEYE_INST/var/log/fisheye.out 2>&1 &を変更してNohupを使用しないようにします(upstartがフォアグラウンドで実行することを望んでいるため:

#echo "Starting FishEye/Crucible... Output redirected to $FISHEYE_INST/var/log/fisheye.out"
#Nohup sh -c "exec $CMD" >> $FISHEYE_INST/var/log/fisheye.out 2>&1 &
sh -c "exec $CMD"

/etc/init/fisheye.confファイルを作成します(私は私のるつぼに名前を付けましたが、関係ありません):

# Crucible Upstart
#
# Required-Start:
# Required-Stop:

description "Crucible Server"

start on runlevel [2345]
stop on runlevel [!2345]

setuid crucible
setgid crucible
env FISHEYE_HOME="/home/crucible/crucible"
env FISHEYE_INST="/home/crucible/crucible-datastore"

# Give up if restart occurs 10 times in 30 seconds.
respawn limit 10 30

# keep it running in foreground to let upstart manage it
exec ~crucible/crucible/bin/start.sh
respawn

実行するユーザーによっては、setuidとsetgidを変更する必要がある場合があることに注意してください。パスのenv行を変更する必要がある場合もあります。

0
Clayton Dukes