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
}

스크립트를 계속 사용하려면 끝에 "&"를 넣지 말고 로그 출력을 게시하세요.

.: 프란시스코

관련 정보