LINUX.ORG.RU

чтобы можно было делать start stop

Для этого есть systemd (смотри ман, там в конце есть простые примеры) или инит-скрипты на баше (гугли примеры для твоего дистрибутива). От самого «сервиса», написанного на C/C++, требуется только корректная обработка сигналов (SIGTERM хотя бы).

а само тело сервиса тупо писало в лог

Простейший способ - одна функция syslog() которая пишет строки, как ни странно, в syslog. Затем эти строки попадают в /var/log/messages, /var/log/syslog или journald (зависит от системы и настроек).

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)

Это такая вещь, что если входит в сложный проект, то в название не попадает. Таким образом все проекты с daemon в названии (на том же гитхабе) будут простейшими и демонстрационными.

https://github.com/search?q=daemon

Ты вообще искал или сразу сюда припёрся?

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

Ты вообще искал или сразу сюда припёрся?

ну может он и искал что-нибудь типа «сервер чтобы можно было делать старт стоп и чтоб тело писало в лог», тогда сложно будет.

я вот не очень понял, то ли инит скрипт нужен, то ли демон, то ли все вместе?

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

Я искал «сервер чтобы можно было делать старт стоп и чтоб тело писало в лог скачать без смс и регистрации»

Мне дали ссылок, буду разбираться

Eof
() автор топика
Ответ на: комментарий от Deleted

systemd у наркоманов. У нормальных людей что-нибудь вроде openrc.

А демон пишется элементарнейшим образом. Что-то вроде этого можно использовать для того, чтобы убивать процесс (запускаешь с параметром stop, проверяешь, есть ли живой демон, если есть — грохаешь; аналогично если с параметром start запускаешь, а живой есть, посылаешь на 3 буквы). Ну и функцию daemon() не надо забывать.

anonymous
()

Вот тебе один из моих простых демонов.

Т.к. демону «хвосты» не нужно подчищать при смерти, убиваю элементарным kill. Если что-то сделаю, где нужно будет подчищать, то сделаю как выше сказал.

Ну и в моих сниппетах поковыряйся, может чего полезного для себя найдешь. Скажем, я сделал обертку над getopt_long, ей намного удобней пользоваться, чем напрямую. Все равно разбор параметров — длительная процедура...

anonymous
()

Спасибо всем кто отписал, c наступившим!=)

Eof
() автор топика
Ответ на: комментарий от Deleted

Простейший способ - одна функция syslog() которая пишет строки, как ни странно, в syslog

Ну, если говорить о systemd, то простейший способ — просто всё писать в stdout.

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

Не подойдёт. Надо как-то сигнализировать о переходе из состояние «запускается» в состояние «запустилось», например дёрнуть специальную systemdшную функцию или правильно форкнуться.

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

Не обязательно. Type=simple. дергать sd_notify нужно если тип notify

vromanov ★★★
()

ну вот есть мое говнище на плюсах с логгированием и мини-сервером на boost.asio. Не судите строго - я тогда только учился прогать на 11 плюсах и только начал погружаться в мир библиотек.

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

Пофиг, что говнокод.

Зато работает и не глючит.

anonymous
()
Ответ на: комментарий от legolegs

вот-вот. одна наркомания порождает другую наркоманию. надо сразу это под корень рубить.

Iron_Bug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.