|
Вариант для распечатки |
Пред. тема | След. тема | ||
Форумы WEB технологии (Public) | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 04-Июн-08, 10:39 | |
Пхп собран как модуль апача под *nix. Есть задачка - запустить чайлдом очень долгий процесс, и чтобы родитель его соотв-но не ждал. Но как отрубить чайлда от STDOUT?? Браузер всёравно ждёт пока чайлд завершится и закроет канал (( | |
Высказать мнение | Ответить | Правка | Cообщить модератору |
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от Pahanivo (ok) on 06-Июн-08, 09:54 | |
>Пхп собран как модуль апача под *nix. Есть задачка - запустить чайлдом | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
2. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 06-Июн-08, 10:42 | |
> | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
3. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от angra (ok) on 06-Июн-08, 11:01 | |
А какие действия у вас предпринимает child для своей демонизации? | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
4. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 06-Июн-08, 11:53 | |
>А какие действия у вас предпринимает child для своей демонизации? | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
5. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от angra (ok) on 07-Июн-08, 06:19 | |
Обычно происходит так: браузер ждет окончания данных от веб-сервера, веб-сервер ждет завершения скрипта-родителя, родитель ждет завершения потомка. Если же надо отвязать потомка от родителя, то есть произвести демонизацию, то следует в потомке закрыть дескрипторы стандартного ввода/вывода(STDIN, STDOUT,STDERR они же 0,1,2) и вызвать setsid для отвязывания от терминала(и родителя). Есть ли в php такие возможности я не в курсе. Более подробно о демонизации можно глянуть, например, здесь http://www.enderunix.org/documents/eng/daemon.php ну или гугл поспрашивать. | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
6. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от GD on 07-Июн-08, 08:55 | |
>Обычно происходит так: браузер ждет окончания данных от веб-сервера, веб-сервер ждет завершения | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
7. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 07-Июн-08, 12:22 | |
>Обычно происходит так: браузер ждет окончания данных от веб-сервера, веб-сервер ждет завершения | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
8. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от Pahanivo (ok) on 07-Июн-08, 14:36 | |
хочетсо добавить это есть потенциальный DoS! | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
9. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 07-Июн-08, 15:06 | |
>хочетсо добавить это есть потенциальный DoS! | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
10. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от angra (ok) on 07-Июн-08, 21:46 | |
Может лучше запустить демон не из апача и обращаться к нему из скрипта через сокет с запросами? | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
11. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 07-Июн-08, 23:31 | |
>Может лучше запустить демон не из апача и обращаться к нему из | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
12. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от angra (ok) on 08-Июн-08, 08:38 | |
Объясню подробней. Создается демон, который в цикле слушает сокет при помощи select и если нет данных и текущих заданий засыпает на определенное время. То есть в режиме бездействия системных ресурсов не жрет. Различные вебскрипты для выполнения фоновых задач или задач, требующих повышения привилегий, связываются через сокет с демоном и вызывают ту или иную его функцию. Демон выполняет поставленную задачу, попутно продолжая проверку сокета на предмет новых соединений. Если вам нужно вызвать один единственный скрипт, не требующий повышения привилегий, причем очень редко, то можно обойтись и фоновым запуском, однако если возможных заданий становится несколько, становится критичным race condition и время выполнения, появляется нужда в опросе статуса выполнения задания, необходимость в повышении привелегий итд итп, то вариант с демоном будет значительно удобней. | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
13. "Как отключить чайлда от STDOUT в PHP?" | |
Сообщение от mac (??) on 08-Июн-08, 21:01 | |
>[оверквотинг удален] | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
Архив | Удалить |
Индекс форумов | Темы | Пред. тема | След. тема |
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ] |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |