LINUX.ORG.RU
ФорумAdmin

По следам демонов OpenRC

 , ,


0

1

Решил я в своем демоне вынести опции конфигурации в /etc/conf.d, как и должно быть. Глянул как это делали на github с каждым демоном и впал в когнитивный диссонанс: как именно правильно передавать опции демонизируемой программе? Как быть, если для нее нужно command_background=true? В тред призываются опытные админы и разработчики Gentoo.

Пока вид /etc/init.d/byedpi такой:

name="ByeDPI"

command=/usr/bin/ciadpi
pidfile="/run/${RC_SVCNAME}.pid"
logfile="/var/log/${RC_SVCNAME}.log"

start() {
        local opts source
        if [ -n "${BYEDPI_OPTS}"]; then
                opts=${BYEDPI_OPTS}
                source="@SYSCONFIGDIR/conf.d/{RC_SVCNAME}"
                  fi
        ebegin "Starting settings daemon to $opts from $source"
        command "$opts"
        eend $? "Failed to start daemon"
        command_background=true
}                                            

Вот стандартный изкоробочный /etc/init.d/git-daemon:

#!/sbin/openrc-run
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

pidfile="/run/git-daemon.pid"
command="/usr/bin/git"
command_args="daemon ${GITDAEMON_OPTS}"
command_user="${GIT_USER:-nobody}:${GIT_GROUP:-nobody}"
start_stop_daemon_args="-e HOME= -e XDG_CONFIG_HOME="
command_background="yes"

depend() {
        use logger
}

Здесь не переопределяется start, однако опции из conf.d читаются

annulen ★★★★★
()
Ответ на: комментарий от annulen

Как вообще OpenRC демонизирует процессы? Я в sysvinit скриптах писал просто myprogram&, разумеется с чтением их PID в pid-файл. А тут как? Параметра command недостаточно?

LongLiveUbuntu ★★★★★
() автор топика