Скрипт для проверки правильности работы программы

У меня есть две программы 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 из процессов, если они запущены. Как я могу получить прямой вывод из них, чтобы проверить, содержат ли строки заданные значения?

0
задан 16 May 2017 в 16:54

2 ответа

Перенесите свои скрипты stdout в файл, например:

my_program1.py > /tmp/log.1

Затем в вашем скрипте читайте log.1, чтобы увидеть, так ли это.

] Если вы хотите, чтобы ваши сценарии выводились на терминал, на котором они запущены, вместо перенаправления вывода в файл используйте tee.

my_program1.py | tee /tmp/log.1
1
ответ дан 18 July 2018 в 13:12

Перенесите свои скрипты stdout в файл, например:

my_program1.py > /tmp/log.1

Затем в вашем скрипте читайте log.1, чтобы убедиться, что это так, как должно быть.

] Если вы хотите, чтобы ваши сценарии выводились на терминал, на котором они запущены, вместо перенаправления вывода в файл используйте tee.

my_program1.py | tee /tmp/log.1
1
ответ дан 24 July 2018 в 20:07
  • 1
    Я думаю, что это не так хорошо, потому что программы должны работать 24/7 на моем сервере, и иногда я хочу проверить, все ли они работают. И тогда файл станет довольно большим. – Nono 16 May 2017 в 17:47
  • 2
    Вы можете использовать файлы fifo вместо обычного файла. вы также можете сделать эти файлы пустым время от времени, например: sleep 10000; echo > /tmp/log.1. – Ravexina 16 May 2017 в 18:36

Другие вопросы по тегам:

Похожие вопросы: