我正在尝试为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
}
如果您想继续使用您的脚本,请不要将“&”放在末尾,并发布日志的输出。
.: 弗朗西斯科