
Hebang
(usa Arch Linux)
Enviado em 06/02/2012 - 12:40h
Ola pessoal!
Se me permitem, gostaria de deixar meus dois cents :P
Todas as soluções propostas acima utilizam uma filtragem na saida do comando "ps", o que funciona perfeitamente. Porém, e se em uma atualização o nome do processo muda?
Acho que a solução mais ideal seria verificar a existência do arquivo de PID do processo (que, no meu ver, é a maneira mais correta).
Todo processo cria (ou pelo menos deveria criar) um arquivo de PID em /var/run (tipo "/var/run/meu_processo.pid"), que contém dentro dele apenas o PID associado aquele processo.
Se o processo que você deseja pesquisar criar esse PID file, seu script se resume a:
#!/bin/bash
PID_FILE="/var/run/meu_proc.pid"
CMD_PROC="./meu_proc"
if [ -e "$PID_FILE" ]; then
echo "Processo jah foi inicializado"
exit 0
else
echo "Iniciando processo..."
eval $CMD_PROC
exit 1
fi
Se o processo em questão não cria arquivo de PID, a solução dos colegas acima é o que procura.
Espero ter ajudado!