PHP Запуск скрипта-демона на python

159
28 декабря 2019, 19:10

Ubuntu 18.04 Почему при вызове моего питоновского скрипта-демона из PHP страница бесконечно грузится? Вывод вроде как направляю в файл и использую nohup (как указанно в документации). P.S. Хочу сделать кнопку на сайте, при нажатии на которую скрипт будет вкл. и работать.

Мой php код:

    <?php
    $result = system('nohup python3 /home/scripts/script1.py & > output.txt', $retval);
echo $retval;
    ?>

Питон скрипт представляет из себя вечный цикл и записью данных в бд.

Answer 1

Команда & фонового запуска процесса указана в неверной позиции. И еще полезно отсоединить stdin.

Важно не указывать второй аргумент, если не хотите дожидаться завершения процесса!

<?php
    system('nohup python3 /home/scripts/script1.py </dev/null &>output.txt &');
?>

Если всё-таки важно убедиться, что Python скрипт запущен корректно, то напишите запускающий скрипт.

start.py

#!/usr/bin/env python
import sys
import time
from subprocess import Popen
DETACHED_PROCESS = 0x00000000
CREATE_NEW_PROCESS_GROUP = 0x00000200
BELOW_NORMAL_PRIORITY_CLASS = 0x00004000
proc = Popen(
    [sys.executable, '/home/scripts/script1.py', 'argument1', 'argument2'],
    creationflags= DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP | BELOW_NORMAL_PRIORITY_CLASS,
    close_fds = True
)
# Wait a bit in case process failed to start
time.sleep(2)
if proc.poll() is not None and proc.poll() > 0:
    raise RuntimeError('Cannot start process')

PHP

<?php
    $result = system('python3 /home/scripts/start.py 2>&1', $retval);
    echo $retval;
?>
READ ALSO
Отправить изображение post запросом

Отправить изображение post запросом

Нужно оправить изображение и текст пост запросом, на просторах интернета нашёл библиотеку https://githubcom/kevinsawicki/http-request судя по приведённому примеру...

129
Ищу любой проект по vue js open source

Ищу любой проект по vue js open source

Ищу любой проект по vue js есть опыт в написание на vue js модулей статистики готов работать за спасибо если у вас интересная идея причина довольно...

152
Ошибка Cannot modify header information - headers already sent [дубликат]

Ошибка Cannot modify header information - headers already sent [дубликат]

Я новичок и я делаю проект с тестированием и столкнулся с такой ошибкой

127
Метод gzcompress из PHP в C#

Метод gzcompress из PHP в C#

Каким методом в C# можно заменить метод сжатия строки из PHP

191