Apache2 mod_perl open внешние программы, jr, 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 убивать такие программы по таймауту?
|
- Apache2 mod_perl open внешние программы, Splushkin, 14:23 , 16-Янв-08 (1)
Нужно использовать таймаут в нутри скрипта Таймауты вроде есть в IO::Selectесли прога не закончила выполнение за таймаут, закрываем её хендлер на всякий случай можно ещё процесс пристреливать, на случай если прога не реагирует на SIG_INT
- Apache2 mod_perl open внешние программы, jr, 09:42 , 22-Янв-08 (2)
>Нужно использовать таймаут в нутри скрипта >Таймауты вроде есть в IO::Select > >если прога не закончила выполнение за таймаут, закрываем её хендлер >на всякий случай можно ещё процесс пристреливать, на случай если прога не >реагирует на SIG_INTЭто не выход... Нужно иметь возможность убивать процессы средствами самого Apache
- Apache2 mod_perl open внешние программы, Splushkin, 22:20 , 05-Апр-08 (3)
>Это не выход... Нужно иметь возможность убивать процессы средствами самого Apache сам подумал что сказал? процесс создал потомков, сам же и должен заботиться о том чтоб они дохли вовремя. а если имеется в виду то что пользователи хостинга делают такие косяки, и какиенить висяки память жрут, то надо по крону вызывать скриптик и смотреть порожденные от апача процессы, смотреть сколько они работают, и убивать те которые слишком долго работают, для этого даже перл ненадо знать, можно на баше такой скриптик написать
- Apache2 mod_perl open внешние программы, jr, 09:41 , 07-Апр-08 (4)
>а если имеется в виду то что пользователи хостинга делают такие косяки, >и какиенить висяки память жрут, >то надо по крону вызывать скриптик и смотреть порожденные от апача процессы, >смотреть сколько они работают, и убивать те которые слишком долго работают, >вот такой кривой способ и не хочется использовать... это самый простой и примитивный способ, который сейчас и работает хочется тоже самое, но средствами сервера
|