LINUX.ORG.RU
решено ФорумAdmin

Отладка демона в OpenRC

 , ,


0

1

Пишу демона для некоей программы. Скрипт выглядит так:

#!/sbin/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.

name="ByeDPI"

command=/usr/bin/ciadpi
pidfile="/run/${RC_SVCNAME}.pid"
logfile="/var/log/${RC_SVCNAME}.log"
byedpi_args="--fake -1"
command_args="${byedpi_args}"
#supervisor=supervise-daemon
depend() {
    need net
}
Проблема в том, что хоть при запуске все стартует, статус демона по-прежнему остается starting, как будто он не может стартовать до конца. Делал по официальному руководству Gentoo для OpenRC. Где может быть затык? Всем спасибо.

Перемещено hobbit из general

А где функция старт? Я сейчас бегло глянул по «заводским» демонам - там везде есть старт и есть либо return, либо eend. Попробуй сделать функцию старт и чтоб она возвращала 0 в случае успеха и 1 в случае сбоя.

u5er ★★
()
Последнее исправление: u5er (всего исправлений: 1)

а зачем supervisor=supervise-daemon закомментировал? Оно как раз для программ, которые не уходят в фон. Тогда и всякие pidfile можно выкинуть на мороз, где им и место.

Аргументы запуска лучше вынести в /etc/conf.d, если есть вероятность что ты захочешь их изменить

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

я аж проверил

$ cat /etc/init.d/ciadpi 
#!/sbin/openrc-run
name="ByeDPI"

command=/usr/local/bin/ciadpi
pidfile="/run/${RC_SVCNAME}.pid"
logfile="/var/log/${RC_SVCNAME}.log"
byedpi_args="--fake -1"
command_args="${byedpi_args}"
supervisor=supervise-daemon
depend() {
    need net
}

$ doas rc-service ciadpi start
 * Starting ByeDPI ... [ ok ]

$  rc-service ciadpi status
 * status: started

УМВР (с учетом того что эта хрень не компилится под musl без #define _POSIX_C_SOURCE ...)

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

rc-service ciadpi status

  • status: started

Именно на это жалуется автор в первом сообщении:

Проблема в том, что хоть при запуске все стартует, статус демона по-прежнему остается starting, как будто он не может стартовать до конца.

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

у автора был статус starting - то есть «запускается». У Lrrr - started, то есть «запущен». Это разные статусы, started как раз говорит о том, что по мнению OpenRC всё должно работать.

Pinkbyte ★★★★★
()