Estou tentando verificar se um processo (suponha que seja chamado some_process) está sendo executado em um servidor. Se for, então eco 1, caso contrário, eco 0.
Este é o comando que estou usando, mas ele funciona apenas parcialmente (mais informações abaixo). Note que eu preciso escrever o script em uma linha.
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
Nota: O [s]no some_proces[s]é para evitar grepde retornar em si.
Se some_processestiver em execução, o "1"eco será exibido, o que é bom. No entanto, se some_processnão estiver em execução, nada será repetido.
ps -Ccmdpara encontrar processos cujo nome de comando seja "cmd", que pode eliminar completamente ogrep.psdefinirá o código de saída para um valor diferente de zero se ele não encontrar um processo de correspondência.