Функция сценария инициализации LSB "start_daemon" действительно используется для реальных демонов, или я должен придерживаться start-stop-daemon?

В контексте сценариев инициализации, согласно спецификации LSB, "каждый соответствующий сценарий инициализации должен выполнять команды в файле /lib/lsb/init-function", который затем определяет пару функций, которые будут использоваться при использовании демонов. Одна из этих функций start_daemonкоторый, очевидно, "запускает указанную программу как демон" при проверке, запущен ли демон.

Я нахожусь в процессе демонизации своего приложения-службы и смотрю, как другие демоны запускаются, чтобы попытаться "вписаться". Посмотрев, как это делается в другом месте, я заметил, что ни один демон на моей машине с Ubuntu 10.04 не использует start_daemon. Все они вызывают start-stop-daemon напрямую. То же самое касается моей машины Fedora 14. Должен ли я попытаться играть хорошо и быть первым, кто использует start_daemon, или действительно нет никакого смысла, и start-stop-daemon - это путь, так как все уже используют это? Почему нет демонов, использующих функции LSB?

2 ответа

В моей системе большинство скриптов используют start-stop-daemon, но два, exim4 а также incron использование start-daemon,

Если вы хотите написать сценарии для переносимости и соответствия LSB, используйте start_daemon, В Ubuntu это реализовано как простая оболочка для start-stop-daemon,

Если вам нужна гранулярность аргумента start-stop-daemon, используй это.

На Debian (ну, Ubuntu) lsb-base пакет имеет readme (в /usr/share/doc/lsb-base/README.Debian.gz) который говорит:

Примечание: пакеты Debian, вероятно, должны использовать start-stop-daemon напрямую; однако эти функции могут быть полезны при переносе сценариев инициализации из других дистрибутивов.

Итак, программное обеспечение, упакованное специально для Debian, обычно использует start-stop-daemon, Я могу представить, что программное обеспечение, портированное из другой системы, может использовать start_daemon, хотя если другая система имеет аналогичную политику, то программное обеспечение не будет использовать start_daemon во-первых, так что это может быть не так просто портировать его с помощью start_daemon чем start-stop-daemon, Я также могу представить, что программное обеспечение, которое упаковано для многих систем, может использовать start_daemon, чтобы включить переносимый сценарий инициализации. Exim может быть хорошим примером этого.

Лично я думаю, что совет readme ужасен, граничащий с преступным. У нас есть стандарт; если все будут придерживаться этого, программное обеспечение будет более портативным, что является хорошей вещью. Консультирование людей, не использующих стандартные пропуска, дает возможность сделать мир лучше.

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