![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Igоr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.12.2005 Репутация: нет Всего: нет |
привет.
есть скрипт, который будет работать в бесконечном цикле, но нужен способ как-нибудь его остановить по требованию. Как сделать? Спасибо |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Igоr можно написать обработчик на нажатие Ctrl-C или другие клавишы, при нажатие на кот. срабатывавет last в цикле.
![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
Igоr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.12.2005 Репутация: нет Всего: нет |
Извините если туплю, но я так понял, что метод, который вы предлагаете применим при запуске скрипта из консоли?
В моей ситуации скрипт запускается из веба. Это сообщение отредактировал(а) Igоr - 4.1.2006, 20:02 |
|||
|
||||
sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Igоr
да. ![]()
Тогда подробнее опиши ситуацию. ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
Igоr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.12.2005 Репутация: нет Всего: нет |
Ситуация следующая, есть скрипт, который получает массив урлов и гетит их, после того как пройдет весь список по одному разу нужно возобновить цикл и так далее... но не до бесконечности конечно
![]() ![]() Доступа к консоли нет. |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Идея у тебя хорошая, но у тебя врядле что-то получится. Попробуй, напиши программу с цикло, не обязательно бесконечным и зупусти её в браузере.
![]() ![]() -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Igоr можно сделать так, конечно, не самый простой способ.
![]() Написать отдельно скрипт, который при нажатие на кнопочку, т.е. при посылке ему опрделенного запроса, делал бы следующее - искал бы в процессах запущенный твой скрипт и удалял его при помощи команды kill. На самом деле, можно сделать запуск твоего скрипта по расписанию через cron и тогда не требуется его обрывать, пусть работает как часы. ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
popkorn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.12.2005 Репутация: нет Всего: нет |
при посылке скрипту определенного параметра, выполняется :
@info = `ps aux`; foreach $a(@info){ if ($a =~ /название_скрипта/ ){ @ar=split(/ /,$a); `kill -9 "@ar[1]"`; }; } |
|||
|
||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Небольшой вопрос вдогонку.
Как убить зависший процесс и быть уверенным, что он точно убит? Либо, практически то же самое, - как определить PID зависшего (текущих) процессов? ![]() Заранее благодарен. Это сообщение отредактировал(а) Usya - 22.2.2006, 08:07 --------------------
Я не волшебник, я только учусь... |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
![]() ![]() ![]()
|
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
Добавлено @ 16:47 ![]() |
|||
|
||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
chaos, tishaishii
Спасибо за ответы, но мне не надо убивать абсолютно все процессы, тем более перезагружать систему. Да и правов у меня таких нет. Попробую перефразировать вопрос: Как определить PID процесса (если более конкретно, то cgi-скрипта), чтобы при необходимости можно было его убить? При этом определить PID нужно из внешней проги. Или, в крайнем случае, необходимо определить PID-ы всех процессов (cgi-скриптов), а какой из них убить, там уже сам решу ![]() Это сообщение отредактировал(а) sharq - 23.2.2006, 12:39 --------------------
Я не волшебник, я только учусь... |
|||
|
||||
tishaishii |
|
||||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
Перечислены не все свойства. Все свойства процессов можно узнать здесь:
|
||||
|
|||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
tishaishii, все конечно хорошо.
С предложенным щас постараюсь разобраться, но есть ли что-либо универсальное, не зависящее от операционки? Я имею ввиду винду и линухи/юнихи. --------------------
Я не волшебник, я только учусь... |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
![]() Это сообщение отредактировал(а) korob2001 - 24.2.2006, 10:13 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Есть и более простые способы.
Например, просто выключить питание и всеееееее!!! Есть какие-нибудь дельные советы ![]() --------------------
Я не волшебник, я только учусь... |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
Думаю можно с помощью "сигналов" сделать... читай perlsec
|
|||
|
||||
zedik38 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.12.2011 Репутация: нет Всего: нет |
хочу получить pid запущенного процесса, на bash получается так:
при использовании
пишет всю строку,а не только pid процесса. помогите результат данного фрагмента закинуть в переменную на perl ? Это сообщение отредактировал(а) zedik38 - 1.4.2012, 20:41 |
||||
|
|||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
\$1
|
|||
|
||||
FishHunter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 12.2.2009 Репутация: нет Всего: нет |
блин ... некроманты
![]() Это сообщение отредактировал(а) FishHunter - 4.4.2012, 20:39 |
|||
|
||||
od0201 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 16.1.2009 Репутация: 1 Всего: 1 |
если у вас нет прав, то и "вечно" он не сможет, мне хостер 30 сек дает
отвечу, как понял вопрос , если веб есть список урлов, вытаскиваем первый, обрабатываем, получаем новый список, "кладем в конец" и перегружаем скрипт
В любой момент можем остановить и продолжить. Но рекомендую встроить механиз защиты от вторичного запуска. Остановить, 4 варианта - кнопочка "стоп в браузере" (мой выбор) - ориентируемся на 0 или 1 в переменной, и решаем продолжать или нет - ориентируемся на 0 или 1 в файле флаг.тхт, и решаем продолжать или нет - ориентируемся на 0 или 1 в куках и решаем продолжать или нет (глупо, но реализовать можно) 0 или 1 выставляем кнопочкой в форме запуская при этом этот же скрипт (в З.Ы. описана проблема проблема прорисовки кнопочки) для отображения статистики/хода работы
З.Ы.но во всем этом есть и проблема, прорисовка в разных браузерах будет не всегда вовремя, здесь "поиграться" нужно, в ИЭ работает на ура. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |