Доброго всем дня.
Мне нужно сделать это:
С компьютера где-то в этом мире мне нужно получить доступ к определенному URL и запустить процесс. Единственная проблема состоит в том, что, поскольку процесс может длиться более 5 часов и может возвращать некоторые ошибки (процесс переместится через них), PHP-команды, такие как exec, shell_exec и т. Д., Не работают (не знаю, почему, но ... все вернуть ошибку и остановить выполнение) ... так что я попробовал это:
- Я сделал cron, который запускает скрипт
- используйте php для написания файла скрипта
Все работает нормально, но мне нужно вернуть счетчик, сообщающий мне, когда процесс начнется, поэтому, когда я запускаю сценарий php, который редактирует сценарий оболочки, я возвращаю час системы и начинаю считать до следующей полной минуты (когда скрипт будет выполнен).
Теперь единственная проблема заключается в следующем:
Счетчик СМОЖЕТ работать нормально ... но процессу также нужно некоторое время для запуска, и это время может варьироваться от 3-4 секунд до 1 минуты. Мой вопрос ... могу ли я получить хотя бы подсказку, если не точное время начала процесса и точное время его запуска?
Я не знаю ... вроде записи в файл и сценарий php прочитал его на минуту, чтобы увидеть, когда что-то изменилось?
Хорошо ... Я обещал добавить некоторые детали:
Процесс потоковый. Жить. Вот что мне нужно сделать:
создать поток
дать счетчик пользователю, когда поток начнется
Я использую ffmpeg для потоковой передачи. В файле start.php есть что-то вроде:
// Create a file called script.sh
$string = "ffserver & ffmpeg -i pipe.avi http://localhost:8090/feed1.ffm& echo exit 0 > script.sh& exit 0";
//write string to script.sh
//create a file that contains the exact time when the script was run.
Cron выглядит так:
* * * * * /var/www/html/script.sh > /dev/null
and some other crons that doesn't matter
Так что я могу создать счетчик, который получает время запуска скрипта и подсчитывает время до следующей минуты, когда запустится cron. Дело в том, что у ffmpeg есть некоторое время до его запуска (тестирование кодеков, проверка файла и т. Д.). Мне нужно получить это время и включить его в таймер, чтобы при запуске потока говорящий говорит «Привет». Разве ему не приятно делать что-то вроде: «Хорошо ... это работает? Да? Привет, чел.» и нехорошо для пользователей терять первые 3-4 предложения. Вот почему мне нужен момент, когда ffmpeg запускается и как-то передает его в скрипт php. Я могу управлять оттуда.