Como encontrar mensagens de erro dos scripts init.d / rc.d do Linux?


28

No Linux, escrevi alguns scripts para serem executados durante a inicialização e brinquei com as várias maneiras de instalá-los. Para scripts maiores, colocarei /etc/init.de vincularemos os /etc/rc.d/rc?.dníveis de execução apropriados . Para scripts menores, anexarei a /etc/rc.d/rc.local. Esse processo parece estar ocorrendo sem problemas.

Agora ajustei um dos meus scripts e está falhando. Estou tendo um tempo enorme para diagnosticá-lo porque não consigo capturar a saída de erro. Eu verifiquei /var/log/messagese bisbilhotei o resto, /var/logmas não consigo encontrar nada de útil.

Alguém sabe:

  1. essas mensagens de erro são capturadas automaticamente em algum lugar?
  2. caso contrário, como posso capturar o stdout / stderr dos meus scripts init.d?

Desde já, obrigado.



Se você for para uma distribuição mais moderna com o systemd, ele cuidará disso para você e permitirá registrar em diário as mensagens de cada serviço.
Eckes

Respostas:


17
  1. Não - eles vão para STDOUT (se você usar echo) ou STDERR (se você usar echo >&2).

  2. Seus scripts precisam gravar em logs e / ou syslog por conta própria (sua distribuição pode conter algumas funções init.d que podem ajudar lá - adicione sua distribuição à sua pergunta).

Se você procurar logs, procure o teecomando. Se você for para o syslog, olhe logger. Você pode combiná-los da maneira que quiser.



6

Você pode criar uma função para ecoar a mensagem na tela e no syslog, algo como isto:

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

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

Você também pode colocar isso em um arquivo separado e incluí-lo em seus scripts com

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

Obrigado, isso está mais próximo do que eu estava procurando. Eu sei como redirecionar a E / S, mas não sabia como chamar o criador de logs.
McKAMEY

É [ -r ... ]um teste para verificar se existe?
McKAMEY

Sim, verifique se o arquivo está legível.
#

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.