Получить статус выполнения программы на Python на PHP - PullRequest
0 голосов
/ 28 июня 2018

Привет, я делаю проект с Raspberry Pi. Я делаю программу на Python, которая имеет бесконечный цикл внутри. Я также создаю веб-сайт PHP, который вызывает эту программу на Python, чтобы она выполнялась в фоновом режиме следующим образом:

$call = "sudo python ../python/readver12.py > /dev/null 2>&1 &";
shell_exec($call);

Кажется, все в порядке, но я не знаю, как узнать, работает ли моя программа на Python в фоновом режиме или нет, и сделать ее доступной на моем сайте с помощью PHP?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Я думаю, есть много способов сделать это:

Попробуйте получить логи с терминала Вы можете создать несколько журналов на своем терминале во время выполнения бесконечного скрипта Python и захватить его с помощью PHP

https://docs.python.org/3/howto/logging.html

Пишите файлы и читайте их с помощью php

Прямо, вы пишете в файл с Python и читаете с PHP http://www.pythonforbeginners.com/files/reading-and-writing-files-in-python

API REST На веб-сайте PHP и Python с cURL Вы можете использовать cURL внутри вашего скрипта Python для связи с вашими конечными точками в php и получения необходимых данных.

cURL: http://pycurl.io/docs/latest/index.html

PHP Api Rest: https://www.codeofaninja.com/2017/02/create-simple-rest-api-in-php.html

Надеюсь, это поможет

0 голосов
/ 28 июня 2018

С помощью shell_exec () PHP будет ждать продолжения вашего скрипта, пока приложение, которое вы вызываете, не выйдет, и вернет вывод этого приложения в виде строки. Когда ваше приложение выполняет резервное копирование, ребенок уже сделан (или вы достигли ограничения PHP ).

Звучит так, будто вы хотите запустить процесс и следить за ним во время его работы. Для этого посмотрите proc_open () и proc_get_status () .

...