[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Status dos servicos
From: |
Edson Marquezani Filho |
Subject: |
Re: [shell-script] Status dos servicos |
Date: |
Sat, 12 May 2007 18:55:55 -0300 |
Eu sou bem fraquinho de bash-script, mas a primeira coisa que me vem
à cabeça é usar o comando pidof pra ver se o daemon em questão tá
rodando.
Tente, no shell:
# pidof programa > /dev/null && echo "Programa rodando" || echo
"Programa não está rodando"
Se o processo existir vai jogar "Programa rodando" na tela ou
"Programa não está rodando" se não estiver.
O redirecionamento pra /dev/null é só pra não jogar o PID do programa na tela.
Uma maneira melhor de você poder tratar a ação a ser executada de
acordo com o estado do programa, é usando a variável $?, que guarda o
código de retorno do último comando executado.
A grande maioria dos programas de Unix retornam 0 (zero) como código
de sucesso, e 1 em caso contrário.
Por exemplo, num script:
#!/bin/bash
pidof programa > /dev/null
if [ $? -eq 0 ]; then
echo "Programa rodando"
else
echo "Programa não está rodando"
fi
Se quiser saber o PID do processo é só atribuir o comando a uma
variável, assim:
PID=`pidof programa`
A partir disso você pode escolher o que fazer quando um programa que
deveria estar rodando, não está e tal. Fica a seu gosto.
Inclusive se você for verificar vários deles, como citado, seria
mais inteligente fazer uma lista e ir varrendo com um laço FOR cada um
deles, e iniciando os que estivessem parados e tal, se essa for sua
intenção.
- Status dos servicos, Viktor Mota, 2007/05/12
- Re: [shell-script] Status dos servicos,
Edson Marquezani Filho <=