Verifica o status de um script de shell

1

Estou executando o CentOS 5.5 e criei um script de inicialização. O início do script contém:

# Source function library.
if [ -f /etc/init.d/functions ]; then
        . /etc/init.d/functions
fi

O bit de início funciona bem, mas estou tendo problemas com o status e interrompo a parte:

status)
echo -n "Status of script: "
status "/bin/sh /path/to/script.sh"
RETVAL=$?
echo
;;

Em PS AUX o comando aparece como "/ bin / sh /path/to/script.sh" e eu posso ver o PID. Mas quando eu corro:

./my_init_script status

Diz que o script não está sendo executado. Devo estar usando o bit / bin / sh, ou apenas o caminho completo do script, ou apenas o nome do arquivo de script?

A parte de parada do script de inicialização utiliza "killproc". Novamente, qual comando devo usar para matar com sucesso todas as ocorrências do script?

    
por Reado 02.08.2010 / 15:01

1 resposta

0

Se é como a função correspondente no Ubuntu, você deve omitir a parte "/ bin / sh".

status "$DAEMON"

Você provavelmente desejará usar algo como:

killproc -p "$PIDFILE" "$DAEMON"

Perto do topo do seu script, defina essas variáveis:

DAEMON="/path/to/yourscriptname.sh"
PIDFILE="/var/run/yourscriptname/yourscriptname.pid"

E, claro, você precisará garantir que /var/run/yourscriptname exista.

Use os scripts existentes em /etc/init.d como modelos para o seu script.

    
por 02.08.2010 / 17:05