Работа PHP-скрипта в фоне

263
30 августа 2017, 16:51

Здравствуйте!

У меня есть PHP-скрипт, где в бесконечном цикле <?php while(true) {...} выполняются команды с консоли, прочитанные с помощью readline(). Т.е. при запуске PHP-скрипта, он создает свою консоль, где можно выполнять мои команды, например get http://google.com и при нажатии на Enter отобразится результат.

Так же помимо команд, PHP-скрипт выполняет и другие действия в своем бесконечном цикле, поэтому он должен работать всегда. А чтобы он работал всегда, я использую утилиту screen. Создаю окно командой screen -S name и запускаю в нем PHP-скрипт. При входе на сервер, чтобы подключиться опять к этом окну использую команду screen -r name.

Подскажите, пожалуйста, как такое можно реализовать:

При написании команды в Bash phpscript start запускать этот PHP-скрипт в фоне. При команде phpscript stop вырубать этот скрипт. И при написании команды phpscript меня подключало к этому PHP-скрипту (как новое окно screen), чтобы я мог отправлять ему команды.

Answer 1

С помощью обработки сигналов.

А что бы скрипт не прерывался при потере связи с терминалом необходимо выполнить. ignore_user_abort(true) и запускать unix-процесс в бэкграунде.

READ ALSO
Как правильно организовать комментарии к сообщениям?

Как правильно организовать комментарии к сообщениям?

Как реализовать комментарии под сообщениями ? Есть стена с списком сообщений и под каждым и них можно оставить Коментарии и под комментарием...

224
Получение слова из выражения

Получение слова из выражения

Делаю свой калькулятор-компилятор в свой байт-код на C++ как на более производительном, чем JavaДело дошло до превращения строки в лексемы или...

235
Cтранное значение указателя

Cтранное значение указателя

Вопрос: почему значение указателя (pChar = muэ), указатель это же целый тип, а тут буквы какие-тоПомогите разобраться почему такое поведение

256
Регулярные выражения C++ [требует правки]

Регулярные выражения C++ [требует правки]

Необходимо получить текст между двумя блокамиДопустим, есть такой код:

542