Что такое log_daemon_msg?

15

Я просматривал, /etc/init.d/sshчтобы получить представление о том, как «правильный» системный демон запускается при загрузке (я пытаюсь добавить svnserveв этот список). Я видел, что это log_daemon_msgиспользуется как команда, но я понятия не имею, что это такое.

which log_daemon_msgи man log_daemon_msgподошел пустой

Пример:

log_daemon_msg "Starting OpenBSD Secure Shell server" "sshd" || true
if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
    log_end_msg 0 || true
else
    log_end_msg 1 || true
fi

Как это работает? Я попробовал поискать в Google, но единственные вещи, которые я мог найти, были вопросы о том, где он записывает свои сообщения, что бесполезно, так как я почти не знаю, как его использовать или что это вообще такое - команда, встроенная функция или что-то еще?

Dubslow
источник
1
Показать полный файл: вполне вероятно, что эта функция определена в файле, полученном в начале/etc/init.d/ssh
Matteo

Ответы:

19

Это функции LSB . Пожалуйста, посмотрите /lib/lsb/init-functionsи / или /etc/redhat-lsb/lsb_log_message. Путь зависит от вашего дистрибутива.

dchirikov
источник
2
Спасибо! Мой поиск в Google показал, что это как-то связано с LSB, и я посмотрел на страницу Wiki, но это было не особенно полезно. Спасибо за путь! (Это был первый, это сервер Ubuntu.)
Dubslow
Ничего себе, я просто пропустил эту маленькую . /lib/lsb/init-functionsв верхней части сценария инициализации я анализировал ... Кажется, что лучше писать source <...>вместо . <...>если вы хотите, чтобы сценарий легко проанализировать.
Томаш Гандор
-2

У меня нет BSD и я никогда не использовал его ... но наверняка log_daemon_message должен быть функцией оболочки. Посмотрите выше на такие утверждения, как:

, ./functions

Это источник всех функций в файле функций. Другая вещь, которую вы можете сделать, это найти конкретную функцию с помощью find:

find / etc -type f -exec grep -li log_daemon_msg {} \;

И посмотрите, что в файлах. Как я уже сказал, у меня нет BSD, но исследования это весело!

Ура и удачи

Хуан Брейнлингер
источник
Это не BSD, это сервер Ubuntu 12.04; просто ssh - это программа BSD. @Matteo, я grep'd файл, это не локально определенная функция. Я не думал проверять, какие другие файлы он загружает, я пойду делать это сейчас. Причина, по которой я спросил здесь, заключается в том, что один из результатов показал, что это семейство общих / широко распространенных функций.
Дабслоу