The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Apache2 mod_perl open внешние программы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Apache2 mod_perl open внешние программы"  
Сообщение от jr email(ok) on 14-Янв-08, 12:45 
Работает сервер Apache/2.2.6 Embedded Perl version v5.8.8
Скрипты perl через mod_perl запускают внешние программы shell через open( "/path/to/prog |" )

Бывает так, что эти внешние программы работают очень долго, или просто зависают и пользователи прерывают коннект браузера к серверу кнопкой "стоп". Так вот apache не убивает эти зависшие программы и они остаются висеть в памяти навсегда -- по команде ps видно, что они запущены.

Как это предотвратить, т.е. заставить apache убивать такие программы по таймауту?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Apache2 mod_perl open внешние программы"  
Сообщение от Splushkin on 16-Янв-08, 14:23 
Нужно использовать таймаут в нутри скрипта
Таймауты вроде есть в IO::Select

если прога не закончила выполнение за таймаут, закрываем её хендлер
на всякий случай можно ещё процесс пристреливать, на случай если прога не реагирует на SIG_INT

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Apache2 mod_perl open внешние программы"  
Сообщение от jr email(ok) on 22-Янв-08, 09:42 
>Нужно использовать таймаут в нутри скрипта
>Таймауты вроде есть в IO::Select
>
>если прога не закончила выполнение за таймаут, закрываем её хендлер
>на всякий случай можно ещё процесс пристреливать, на случай если прога не
>реагирует на SIG_INT

Это не выход... Нужно иметь возможность убивать процессы средствами самого Apache

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Apache2 mod_perl open внешние программы"  
Сообщение от Splushkin on 05-Апр-08, 22:20 

>Это не выход... Нужно иметь возможность убивать процессы средствами самого Apache

сам подумал что сказал?

процесс создал потомков, сам же и должен заботиться о том чтоб они дохли вовремя.

а если имеется в виду то что пользователи хостинга делают такие косяки, и какиенить висяки память жрут,
то надо по крону вызывать скриптик и смотреть порожденные от апача процессы, смотреть сколько они работают, и убивать те которые слишком долго работают,
для этого даже перл ненадо знать, можно на баше такой скриптик написать

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Apache2 mod_perl open внешние программы"  
Сообщение от jr (??) on 07-Апр-08, 09:41 
>а если имеется в виду то что пользователи хостинга делают такие косяки,
>и какиенить висяки память жрут,
>то надо по крону вызывать скриптик и смотреть порожденные от апача процессы,
>смотреть сколько они работают, и убивать те которые слишком долго работают,
>

вот такой кривой способ и не хочется использовать... это самый простой и примитивный способ, который сейчас и работает
хочется тоже самое, но средствами сервера

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру