![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
xXvladXx |
|
|||
Бездарь ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 9.3.2008 Репутация: нет Всего: 1 |
тут возникла такая проблема
сделал скрипт чтоб работал на хосте вроде все ок но когда закрываю страницу скрипт перестает работать а когда окно открыто все ок пробовал несколько вариантов скрипта, всеравно вылетает( может быть надо писать как в пхп чтото типа сеттаймлимит(0) |
|||
|
||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 2 Всего: 34 |
Скрипт перестает работать потому, что его обрубает Web сервер - он видит, что клиент "отвалился", зачем тогда дальше впустую скрипт гонять, ели его результат никому не нужен.
![]() ЗЫ Для того, чтобы скрипт работал до конца - запускай его из консоли. |
|||
|
||||
xXvladXx |
|
|||
Бездарь ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 9.3.2008 Репутация: нет Всего: 1 |
хм просто скрипт на компе держать оч сложно он жрет ужасно много трафа и работает оч долго(
если варианты чтоб скрипт работал пока не закончит? |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
Есть. Cron называется. Планировщик программ.
Если вам просто надо иногда запускать ваш скрипт, вы 1) пишите скрипт 2) планируете его выполнение с помощью cron Если вам нужно что бы ваш скрипт запускался пользователем и потом работал, вы 1) пишите этот скрипт (отдельная программа) 2) пишите cgi - скрипт (или mod_perl handler - смотря что используете) 3) в cgi скрипте делаете fork() - это запустит новый процесс, а потом в новом процессе exec('имя вашего основного скрипта'); читай сюда: http://www.intuit.ru/department/pl/perl/16/2.html |
|||
|
||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Все дело не в скрипе. А в настройке web servera. Твои скрипт докопается по таймауту. Это есть правильно. Чтобы не дропался не закрывай окно. Или еще вариант сделать скрипт с сохранением состояния. Запустил скрипт. Закрыл окно )) (соеденение). Скрипт проработал мин 10. Сохранился. Потом твоя программа снова к нему обращается и т.д пока не будет получен конечный результат.
|
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
ну зачем делать костыли когда есть fork / exec ?
|
|||
|
||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
И что скрипт исполненный таким образом не будет завершен веб сервером из за таймаута?
|
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
скрипт исполненный таким образом будет _новым процессом_ операционной системы,
к апачу не будет иметь почти никакого отношения. Вод когда mod_prefork порождает вам кучу дочерних апачей, он пользуется именно fork. Они же (дочернии апачи) потом по таймауту не умирают. |
|||
|
||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Родителя у него нет получается? Если есть то как же тогда он будет работать если родителя убьют? А? Или уже потомки не умирают и живут без родителя?
Это сообщение отредактировал(а) tolkien - 3.5.2008, 13:04 |
|||
|
||||
xXvladXx |
|
|||
Бездарь ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 9.3.2008 Репутация: нет Всего: 1 |
тема с fork / exec помогла всем спс
|
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
tolkien, именно так и происходит =) вUNIX по крайней мере. Когда родитель процесса умирает, процесс получает нового родителя. Не помню точно или своего "дедушку" или процесс init. Попробуйте написать что то типа nohup xclock & в xtrem. А потом закройте xterm. Часики останутся |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |