对 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
}

如果您想继续使用您的脚本,请不要将“&”放在末尾,并发布日志的输出。

.: 弗朗西斯科

相关内容