| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Нужно убить все процессы |
| Автор: Igоr 4.1.2006, 18:28 |
| привет. есть скрипт, который будет работать в бесконечном цикле, но нужен способ как-нибудь его остановить по требованию. Как сделать? Спасибо |
| Автор: sharq 4.1.2006, 18:35 |
| Igоr можно написать обработчик на нажатие Ctrl-C или другие клавишы, при нажатие на кот. срабатывавет last в цикле. |
| Автор: Igоr 4.1.2006, 20:01 |
| Извините если туплю, но я так понял, что метод, который вы предлагаете применим при запуске скрипта из консоли? В моей ситуации скрипт запускается из веба. |
| Автор: Igоr 5.1.2006, 13:51 |
| Ситуация следующая, есть скрипт, который получает массив урлов и гетит их, после того как пройдет весь список по одному разу нужно возобновить цикл и так далее... но не до бесконечности конечно Доступа к консоли нет. |
| Автор: korob2001 5.1.2006, 21:39 | ||||
Идея у тебя хорошая, но у тебя врядле что-то получится. Попробуй, напиши программу с цикло, не обязательно бесконечным и зупусти её в браузере.
|
| Автор: sharq 6.1.2006, 18:28 |
| Igоr можно сделать так, конечно, не самый простой способ. Написать отдельно скрипт, который при нажатие на кнопочку, т.е. при посылке ему опрделенного запроса, делал бы следующее - искал бы в процессах запущенный твой скрипт и удалял его при помощи команды kill. На самом деле, можно сделать запуск твоего скрипта по расписанию через cron и тогда не требуется его обрывать, пусть работает как часы. |
| Автор: popkorn 4.2.2006, 16:24 |
| при посылке скрипту определенного параметра, выполняется : @info = `ps aux`; foreach $a(@info){ if ($a =~ /название_скрипта/ ){ @ar=split(/ /,$a); `kill -9 "@ar[1]"`; }; } |
| Автор: Usya 22.2.2006, 08:05 |
| Небольшой вопрос вдогонку. Как убить зависший процесс и быть уверенным, что он точно убит? Либо, практически то же самое, - как определить PID зависшего (текущих) процессов? Заранее благодарен. |
| Автор: chaos 22.2.2006, 10:47 | ||
|
| Автор: tishaishii 22.2.2006, 16:46 | ||
Добавлено @ 16:47 |
| Автор: Usya 23.2.2006, 10:41 |
| chaos, tishaishii Спасибо за ответы, но мне не надо убивать абсолютно все процессы, тем более перезагружать систему. Да и правов у меня таких нет. Попробую перефразировать вопрос: Как определить PID процесса (если более конкретно, то cgi-скрипта), чтобы при необходимости можно было его убить? При этом определить PID нужно из внешней проги. Или, в крайнем случае, необходимо определить PID-ы всех процессов (cgi-скриптов), а какой из них убить, там уже сам решу |
| Автор: tishaishii 23.2.2006, 18:05 | ||||
Перечислены не все свойства. Все свойства процессов можно узнать здесь:
|
| Автор: Usya 24.2.2006, 05:34 |
| tishaishii, все конечно хорошо. С предложенным щас постараюсь разобраться, но есть ли что-либо универсальное, не зависящее от операционки? Я имею ввиду винду и линухи/юнихи. |
| Автор: korob2001 24.2.2006, 10:08 |
| |
| Автор: Usya 25.2.2006, 06:54 |
| Есть и более простые способы. Например, просто выключить питание и всеееееее!!! Есть какие-нибудь дельные советы |
| Автор: nitr 25.2.2006, 20:03 |
| Думаю можно с помощью "сигналов" сделать... читай perlsec |
| Автор: zedik38 1.4.2012, 20:38 | ||||
хочу получить pid запущенного процесса, на bash получается так:
при использовании
пишет всю строку,а не только pid процесса. помогите результат данного фрагмента закинуть в переменную на perl ? |
| Автор: arto 2.4.2012, 07:48 |
| \$1 |
| Автор: FishHunter 4.4.2012, 20:38 |
| блин ... некроманты |
| Автор: od0201 5.4.2012, 16:02 | ||||
| если у вас нет прав, то и "вечно" он не сможет, мне хостер 30 сек дает отвечу, как понял вопрос , если веб есть список урлов, вытаскиваем первый, обрабатываем, получаем новый список, "кладем в конец" и перегружаем скрипт
В любой момент можем остановить и продолжить. Но рекомендую встроить механиз защиты от вторичного запуска. Остановить, 4 варианта - кнопочка "стоп в браузере" (мой выбор) - ориентируемся на 0 или 1 в переменной, и решаем продолжать или нет - ориентируемся на 0 или 1 в файле флаг.тхт, и решаем продолжать или нет - ориентируемся на 0 или 1 в куках и решаем продолжать или нет (глупо, но реализовать можно) 0 или 1 выставляем кнопочкой в форме запуская при этом этот же скрипт (в З.Ы. описана проблема проблема прорисовки кнопочки) для отображения статистики/хода работы
З.Ы.но во всем этом есть и проблема, прорисовка в разных браузерах будет не всегда вовремя, здесь "поиграться" нужно, в ИЭ работает на ура. |