У меня есть две программы Python, работающие на двух различных экранах. На третьем экране я хочу запустить скрипт, который проверяет, работают ли и программы Python и также если они работают правильно (возможно, проверяют консольный вывод, чтобы определить, как ожидалось ли вывод). Как я могу сделать что-то вроде этого со сценарием оболочки?
#!/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
Это - то, что я имею прямо сейчас. Я думаю не лучший способ, но он должен быть хорошо для меня. В program1 и program2 PIDs от процессов, если они работают. Как я могу заставить живой вывод от них проверять, содержат ли строки данные значения?
Перенаправьте свои сценарии stdout
в файл, что-то как:
my_program1.py > /tmp/log.1
Затем в Вашем сценарии читает log.1
, чтобы видеть, является ли это, как это должно быть.
, Если Вы хотите видеть свой вывод сценариев на терминале, они работают в, затем вместо того, чтобы перенаправить вывод к использованию файла tee
.
my_program1.py | tee /tmp/log.1