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

OpenRC никогда не видел, наверное ждет ухода процесса в фон, что если попробовать

command_background=true

?

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

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

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

Don't write your own start/stop functions
OpenRC is capable of stopping and starting most daemons based on the information that you give it.

MOPKOBKA ★★★★★
()

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

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

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

Можно подумать, просьб аналогичного характера по поводу сабжа здесь нет. И да, демон для systemd я напишу следующим, никто не уйдет обиженным.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.