Как реализовать многопоточность в PHP через fork?

Статус
В этой теме нельзя размещать новые ответы.
Можно заюзать обходной вариант:
То, что ты хотел бы, чтобы было процессом - написать в отдельный скрипт (можно даже не на РНР), а из РНР в цикле его дергать в фоне.
Например:

PHP:
exec('/usr/local/bin/php -q thr.php 1>/dev/null 2>/dev/null &');

Ты на практике проверял или просто теоритизируешь?
просто я так пробовал, но у меня не вышло - там есть какоето западло для безопасности которое все параметры передает как один параметр, и у меня & передавалось как параметр...
хотя я сильно не копал, может это както и обходится. Решил просто иначе задачу.
 
Ты на практике проверял или просто теоритизируешь?
просто я так пробовал, но у меня не вышло - там есть какоето западло для безопасности которое все параметры передает как один параметр, и у меня & передавалось как параметр...
хотя я сильно не копал, может это както и обходится. Решил просто иначе задачу.

Работет уже год прокси чекер таким методом.
Данный метод действует в случае если на сервере, где ты это запускаешь, ты можешь скрипты запускать через exec (у меня на дедике работает, все настройки по дефаульту почти). Тогда параметры из главного скрипта, занимающегося управлением, можно передать в "дочерние" при помощи параметров командной строки. А в процессах, которые пускаешь сделай для начала print_r($argv) чтоб увидеть что передалось и как.
 
Работет уже год прокси чекер таким методом.
Данный метод действует в случае если на сервере, где ты это запускаешь, ты можешь скрипты запускать через exec (у меня на дедике работает, все настройки по дефаульту почти). Тогда параметры из главного скрипта, занимающегося управлением, можно передать в "дочерние" при помощи параметров командной строки. А в процессах, которые пускаешь сделай для начала print_r($argv) чтоб увидеть что передалось и как.

сервак у меня под кодовым названием "пАдсТалом", и стоит в одноименном месте... права есть все ибо это главный полигон для всех експериментов а не боевая лошадь (ну там из боевого только роутер вертиться, но айпитаблес это часть ядра, так что можно экспериментировать...
в общем пробовал я. и передается именно так как я сказал - все в одной переменной включая & ... да и в доке по этому поводу тоже чтото такое писалось...
 
& это вообще относиться к шелу.
И дочерний процес не открепляеться.
Если умерла мама то и умерли дети.

Для запуска демонов надо юзать nohup в автомате
и screen если руками

если програмить демонизацию то

fork + setsid (не ЦГИшном пхп их нет)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху