Come trovare i messaggi di errore dagli script init.d / rc.d di Linux?


28

In Linux, ho scritto alcuni script da eseguire durante l'avvio e ho giocato con i vari modi di installarli. Per script più grandi inserirò /etc/init.de collegherò i /etc/rc.d/rc?.drunlevel appropriati . Per gli script più piccoli, aggiungerò a /etc/rc.d/rc.local. Questo processo sembra funzionare senza intoppi.

Ora ho ottimizzato uno dei miei script e non funziona. Ho un sacco di tempo per diagnosticare perché non riesco a catturare l'output dell'errore. Ho controllato /var/log/messagese frugato nel resto /var/logma non riesco a trovare nulla di utile.

Qualcuno sa:

  1. questi messaggi di errore vengono acquisiti automaticamente da qualche parte?
  2. in caso contrario, come posso catturare lo stdout / stderr dai miei script init.d?

Grazie in anticipo.



Se vai a una distribuzione più moderna con systemd, la gestirà per te e consentirà di registrare i messaggi di registro di ogni servizio.
Controlla il

Risposte:


17
  1. No: vanno su STDOUT (se si utilizza echo) o STDERR (se si utilizza echo >&2).

  2. I tuoi script devono scrivere da soli nei log e / o nel syslog (la tua distribuzione potrebbe contenere alcune funzioni init.d che potrebbero esserti utili - aggiungi la tua distribuzione alla tua domanda).

Se cerchi registri, cerca il teecomando. Se vai per syslog, guarda logger. Puoi combinarli nel modo che preferisci.



6

Potresti creare una funzione per fare eco al messaggio sia sullo schermo che sul syslog, qualcosa del genere:

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

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

Potresti anche metterlo in un file separato e includerlo nei tuoi script con

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

Grazie, questo è più vicino a quello che stavo cercando. So reindirizzare l'I / O ma non sapevo come chiamare nel logger.
McKAMEY,

È [ -r ... ]un test per verificare se esiste?
McKAMEY,

Sì, controlla se il file è leggibile.
ott--

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.