gitea
アルパイン用の初期化スクリプトを作成しようとしています。私が試した最初のコードは
#!/sbin/openrc-run
command=/usr/bin/gitea
command_args="web"
pidfile=/var/run/git.pid
name="Gitea Daemon"
description="Gitea - Git with a cup of tea"
start() {
ebegin "Starting Gitea"
start-stop-daemon --start --exec /usr/bin/gitea \
--pidfile /var/run/git.pid
eend $?
}
stop() {
ebegin "Stopping Gitea"
start-stop-daemon --stop --exec /usr/bin/gitea \
--pidfile /var/run/git.pid
eend $?
}
Giteaはフォークしないので、上記のコードを実行するとサービスは実行中ですが、まだフォアグラウンドにあります。だから--background
オプションを追加してみましたstart-stop-daemon
。今はフォークされていますが、サービスが実行されていても「衝突」とマークされています。ファイルを手動で生成することでこの問題を解決できましたgit.pid
。それ以外の場合は、手動で削除するまでサービスを使用できません(開始または停止されません)/var/run/openrc/started/git
。
上記のコードを使用してバックグラウンドで呼び出すとき
rc-service git start &
giteaが起動しますが、rc-status
サービスは「起動中」と表示されます。
また、出力履歴は完了していません。たぶん誰かが私にいくつかのヒントを与えることができます。リダイレクトを追加しようとしましたが、うまくいかず、バックグラウンドでcommand_args
実行するとstart-stop-daemonの出力リダイレクトは役に立ちませんでした。
答え1
これは動作します(gitea-openrcに付属):
#!/sbin/openrc-run
supervisor=supervise-daemon
name=gitea
command="/usr/bin/gitea"
command_user="${GITEA_USER:-gitea}"
command_args="web --config '${GITEA_CONF:-/etc/gitea/app.ini}'"
supervise_daemon_args="--env GITEA_WORK_DIR='${GITEA_WORK_DIR:-/var/lib/gitea}' --chdir '${GITEA_WORK_DIR:-/var/lib/gitea}' --stdout '${GITEA_LOG_FILE:-/var/log/gitea/http.log}' --stderr '${GITEA_LOG_FILE:-/var/log/gitea/http.log}'"
pidfile="/run/gitea.pid"
depend() {
use logger dns
need net
after firewall mysql postgresql
}
スクリプトを引き続き使用する場合は、最後に「&」を入れずにログ出力を公開してください。
.: フランシスコ