AlpineでのGitea openrcスクリプトのトラブルシューティング:フォークとロギングの問題

AlpineでのGitea openrcスクリプトのトラブルシューティング:フォークとロギングの問題

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
}

スクリプトを引き続き使用する場合は、最後に「&」を入れずにログ出力を公開してください。

.: フランシスコ

関連情報