Jak znaleźć komunikaty o błędach ze skryptów init.d / rc.d dla systemu Linux?


28

W Linuksie napisałem kilka skryptów do uruchomienia podczas rozruchu i bawiłem się różnymi sposobami ich instalowania. W przypadku większych skryptów wstawię /etc/init.di /etc/rc.d/rc?.dpołączę odpowiednie poziomy działania. W przypadku mniejszych skryptów dołączę się do /etc/rc.d/rc.local. Wydaje się, że proces ten przebiega sprawnie.

Teraz poprawiłem jeden z moich skryptów i nie działa. Trochę czasu zdiagnozowałem, ponieważ nie mogę uchwycić wyjścia błędu. Sprawdziłem /var/log/messagesi przeszukałem resztę, /var/logale nie mogę znaleźć nic przydatnego.

Czy ktoś wie:

  1. czy te komunikaty o błędach są gdzieś automatycznie przechwytywane?
  2. jeśli nie, jak mogę przechwycić stdout / stderr ze skryptu init.d?

Z góry dziękuję.



Jeśli przejdziesz do bardziej nowoczesnej dystrybucji z systemd, zajmie się tym za Ciebie i pozwoli na zapisywanie dzienników komunikatów każdej usługi.
eckes

Odpowiedzi:


17
  1. Nie - przechodzą do STDOUT (jeśli używasz echo) lub STDERR (jeśli używasz echo >&2).

  2. Twoje skrypty muszą same pisać w logach i / lub syslog (Twoja dystrybucja może zawierać funkcje init.d, które mogą w tym pomóc - dodaj swoją dystrybucję do pytania).

Jeśli szukasz dzienników, poszukaj teepolecenia. Jeśli wybierzesz syslog, spójrz na logger. Możesz łączyć je w dowolny sposób.



6

Możesz wykonać funkcję, aby wysłać wiadomość na ekran i do syslog, coś takiego:

LOGGER="/usr/bin/logger -t $myScript"    # check the location of logger for your system

myEcho () {
    echo "$1"
    $LOGGER "$1"
}

Możesz także umieścić to w osobnym pliku i dołączyć do swoich skryptów

#!/bin/bash
myScript=$(basename $0)
[ -r /myFunctions/myecho ] && . /myFunctions/myecho

Dzięki, to jest bliższe tego, czego szukałem. Wiem, jak przekierować We / Wy, ale nie wiedziałem, jak zadzwonić do rejestratora.
McKAMEY,

Czy [ -r ... ]test sprawdza, czy istnieje?
McKAMEY,

Tak, sprawdź, czy plik jest czytelny.
ott--

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.