Script para verificar se um programa está sendo executado corretamente

0

Eu tenho dois programas python em execução em duas telas diferentes. Em uma terceira tela, eu quero executar um script que verifica se os dois programas python estão em execução e também se eles estão sendo executados corretamente (talvez verifique a saída do console para determinar se a saída é a esperada). Como posso fazer algo assim com um script de shell?

#!/bin/sh

program1="$(ps -ef | grep '[p]ython my_program1.py' | awk '{print $2}')"
program2="$(ps -ef | grep '[p]ython my_program2.py' | awk '{print $2}')"

if [ "${program1}" != "" ]
then
        echo "Program1 is running"
else
        echo "Program1 is not running"
fi

if [ "${program2}" != "" ]
then
        echo "Program2 is running"
else
        echo "Program2  is not running"
fi

Isso é o que eu tenho agora. Eu acho que não é o melhor caminho, mas deve ser ok para mim. No programa1 e no programa2 estão os PIDs dos processos, se estiverem em execução. Como posso obter a saída ao vivo deles para verificar se as linhas contêm valores fornecidos?

    
por Nono 16.05.2017 / 12:20

1 resposta

1

Redirecione seus scripts stdout para um arquivo, algo como:

my_program1.py > /tmp/log.1

Em seguida, no seu script, leia o log.1 para ver se é como deveria ser.

Se você quiser ver seus scripts de saída no terminal em que eles estão executando, então, em vez de redirecionar a saída para um arquivo, use tee .

my_program1.py | tee /tmp/log.1
    
por Ravexina 16.05.2017 / 16:00