Bash Script: Como verificar processo rodando

Olá:

Estou usando o CygWin em meu Windows 98. Quero verificar se um determinado programa está rodando (creio que o termo correto em *nix seja “processo”). Uma maneira que imaginei seria rodar o ps e depois o grep com o nome do processo. Ficaria assim:

ps | grep nome_processo

Experimentei e funcionou como esperava. Mas será que não alternativa melhor? Me sugeriram usar o top, mas acabo de descobrir que ele não foi instalado no meu CygWin.

Para completar: O código acima apenas retorna as linhas com o processo procurado mas e para fazer teste? Eu estava pensando em fazer um bash script como:

#!/bin/bash
if[ps | grep $1]
then return 0
else return 1
fi

Alguma sugestão? Ah! Caso não tenham notado, sou totalmente iniciante nesta área de bash script. Portanto estou atirando no escuro. :?

grato,

Nao sei se o CygWin vem com ‘pidof’, mas me parece uma alternativa bem melhor, nesse caso… Dê uma procurada por ele, e, se nao tiver, vc pode pelo menos usar o valor de retorno do grep (ele retorna zero - ou era nao-zero? - se ele nao encontrar a expressao dentro da entrada).

E como obtenho o valor de retorno?

se nao me engano fica na variavel $?

FLC, voce ta certo, fica em $? sim.

pidof -s /bin/bash | echo $?

isso vai te retornar 0 se o processo ta vivo ou 1 se ele não estiver rodando.[/code]

of if nao precisa de um teste. Precisa so de um retorno 0 ou !0.

Entao voce pode fazer

if pidof $proc_name >>/dev/null 2>&1; then echo "Ta rolando"; else echo "Nao ta"; fi