У меня есть две программы 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 находятся PID из процессов, если они запущены. Как я могу получить прямой вывод из них, чтобы проверить, содержат ли строки заданные значения?
Перенесите свои скрипты stdout в файл, например:
my_program1.py > /tmp/log.1
Затем в вашем скрипте читайте log.1, чтобы увидеть, так ли это.
] Если вы хотите, чтобы ваши сценарии выводились на терминал, на котором они запущены, вместо перенаправления вывода в файл используйте tee.
my_program1.py | tee /tmp/log.1
Перенесите свои скрипты stdout в файл, например:
my_program1.py > /tmp/log.1
Затем в вашем скрипте читайте log.1, чтобы убедиться, что это так, как должно быть.
] Если вы хотите, чтобы ваши сценарии выводились на терминал, на котором они запущены, вместо перенаправления вывода в файл используйте tee.
my_program1.py | tee /tmp/log.1