Szukałem, /etc/init.d/ssh
aby dowiedzieć się, jak „prawidłowy” demon sys jest uruchamiany podczas rozruchu (próbuję dodać svnserve
do tej listy). Widziałem to log_daemon_msg
jako polecenie, ale nie mam pojęcia, co to jest.
which log_daemon_msg
i man log_daemon_msg
wyszedł pusty.
Przykład:
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
Jak to działa? Próbowałem Googlinga wokoło, ale jedyne, co mogłem znaleźć, to pytania o to, gdzie zapisuje swoje wiadomości, co jest bezużyteczne, ponieważ prawie nie wiem, jak go używać, a nawet czym jest - polecenie, wbudowane lub coś innego?
/etc/init.d/ssh
Odpowiedzi:
To są funkcje związane z LSB . Proszę spojrzeć na
/lib/lsb/init-functions
i / lub/etc/redhat-lsb/lsb_log_message
. Ścieżka zależy od twojej dystrybucji.źródło
. /lib/lsb/init-functions
na początku skryptu inicjalizacyjnego, który analizowałem ... Wydaje się, że lepiej pisać,source <...>
niż. <...>
kiedy chcesz, aby skrypt był łatwo analizowany.Nie mam BSD i nigdy go nie użyłem ... ale na pewno log_daemon_message musi być funkcją powłoki. Spójrz powyżej na takie stwierdzenia:
. ./Funkcje
To źródło wszystkich funkcji w pliku funkcji. Inną rzeczą, którą możesz zrobić, to poszukać konkretnej funkcji za pomocą find:
znajdź / etc -type f -exec grep -li log_daemon_msg {} \;
I zobacz, co jest w plikach. Jak powiedziałem, nie mam BSD, ale badania są fajne!
Pozdrawiam i powodzenia
źródło