Intereting Posts
Ошибка FPDF: не может включать файл определения шрифта в PHP отправка массивов в _GET в php Ярлык обновления API Google API не отправляется совместное использование файлов cookie через домены на одном хосте Будет ли файл () влиять на производительность файлов размером примерно 2 МБ? Отправка переменных с одной страницы PHP на другую добавить значение в массив userdata как рандомизировать поиск вопроса из базы данных? тестовое кэширование с отключенным php Ошибка анализа: синтаксическая ошибка, неожиданный '{', expecting '(' help? Zend Framework 2 – Создание простой формы с помощью валидаторов перетащить файлы входных изображений и предварительный просмотр перед загрузкой Как защитить скрипт загрузки изображений PHP от эксплойтов? Как получить относительный каталог независимо от того, где он включен в PHP? Как использовать переменную $ result с объектом таблицы в SQL-запросе с использованием mySQLi

Как запустить несколько php-скриптов в фоновом режиме на ubuntu?

У меня есть веб-страница, которая должна запускать некоторые задания в виде php-процессов в фоновом режиме. Кроме того, он должен иметь возможность идентифицировать каждый процесс, чтобы закрыть его позже. Ex. Worker1, Worker2 … Как это достигается? также как убить тех, кто занимается процессом? ОС – ubuntu. * Эти сценарии всегда работают в фоновом режиме, поэтому они сами не убиваются.

Related of "Как запустить несколько php-скриптов в фоновом режиме на ubuntu?"

Вы можете помещать скрипты и другие задачи оболочки в фоновом режиме, используя nohup в начале, и символ & в конце команды:

 ~$ nohup php script.php >> /var/tmp/script.log 2>&1 & 

Обратите внимание, что с опцией 2>&1 вы перенаправляете вывод (стандартную ошибку и вывод) на стандартный вывод, а затем в файл для ведения журнала (здесь /var/tmp/script.log ).

EDIT: с jobs команд вы можете перечислить процесс, который вы активируете в свою сессию (здесь 1797 – процесс pid):

 ~$ jobs -l [1]+ 1797 Running nohup php script.php >> /var/tmp/script.log 2>&1 & 

Вы можете отправлять сигналы процессу после обнаружения процесса pid. Чтобы убить «красиво» процесс (где ${PID} – это процесс pid):

 ~$ kill -SIGTERM ${PID} 

Если процесс застрял, вы можете использовать сигнал SIGKILL (или -9 ). Обратите внимание, что SIGKILL нельзя перехватить, затем процесс немедленно прекращается без каких-либо операций «очистки» (закрытие временных файлов и т. Д.). kill -9 ${PID} или kill -SIGKILL ${PID} следует использовать только как последний ресурс.

Вот некоторая теория:

Хороший курс о Gnu / Linux: