Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: PHP: Запустить скрипт из другого скрипта не дожидаясь результата  (Прочитано 5154 раз)
0 Пользователей и 1 Гость смотрят эту тему.
BlackStar
Постоялец

ua
Offline Offline
Пол: Мужской

WWW
« : 13-05-2014 12:25 » 

Появилась необходимость запустить один PHP скрипт из другого, но, при этом, вызывающий скрипт тут же завершается. Выяснилось, что при закрытии CURL-а в первом скрипте, второй скрипт почему-о принудительно завершается. Что самое интересное, то же самое происходит и с браузером - при закрытии окна завершается скрипт. Вроде бы раньше такого не было и скрипт продолжал своё выполнение при закрытом соединении... Или я не прав?

Одним словом, можно ли как-то запустить скрипт из другого скрипта, но так, чтобы вызывающий скрипт мог тут же завершить свою работу не дожидаясь ответа? Или для этого нужно обязательно удерживать соединение?
« Последнее редактирование: 13-05-2014 12:29 от BlackStar » Записан

Программирование на заказ   C/C++, Delphi, PHP, javascript
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 13-05-2014 12:34 » 

Читаем мануал: http://www.php.net/manual/ru/misc.configuration.php#ini.ignore-user-abort
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

"железокаменный метеорит" мог образоваться от расплавления металлических конструкций в результате например ядерного взрыва и стекания жидкого железа в какой нибудь щебень (c) Иванов С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 13-05-2014 13:31 » 

Наверно надо дочерний процесс запустить. Типа демона.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
BlackStar
Постоялец

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 13-05-2014 13:32 » 


Вот это да... Не знал. Получается, что это зависит от настроек апача?.. Но тогда на обычном шаред хостинге нет никакого шанса что-либо изменить Жаль
Что ж, спасибо за ссылку.
Записан

Программирование на заказ   C/C++, Delphi, PHP, javascript
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 13-05-2014 13:35 » 

Цитата
один PHP скрипт из другого, но, при этом, вызывающий скрипт тут же завершается. Выяснилось, что при закрытии CURL-а в первом скрипте,

я так понимаю, что интересует многопточность

http://habrahabr.ru/post/40245/
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 13-05-2014 13:38 » 

можно еще попробовать через exec

Но даст ли это сделать хостер?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
BlackStar
Постоялец

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 13-05-2014 13:48 » 

я так понимаю, что интересует многопточность

Нет, многопоточность как раз совершенно не интересует. При многопоточности вызывающий скрипт остается активным и удерживает соединение. В моем же случае, этот скрипт должен завершиться сразу после вызова другого скрипта.
Записан

Программирование на заказ   C/C++, Delphi, PHP, javascript
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 13-05-2014 14:45 » 

ничего не понял
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
BlackStar
Постоялец

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 13-05-2014 14:52 » 

Ну что же непонятного? Крон запускает скрипт-1. Этот скрипт запускает скрипт-2 и тут же завершает работу. Скрипт-2 работает долго и не мешает крону. Всё элементарно.

Проблема решена!!! Во всем действительно была виновата настройка сервера ignore_user_abort. Но оказалось, что есть возможность подставить свой php.ini и переопределить эту опцию. Кому интересно, вот здесь есть доходчивая инструкция:

http://jesin.tk/using-custom-php-ini-files-on-shared-hosting/

Благодарю всех за дискуссию и особенно RXL - Большое спасибо Улыбаюсь
Записан

Программирование на заказ   C/C++, Delphi, PHP, javascript
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 13-05-2014 16:40 » new

Вот это да... Не знал. Получается, что это зависит от настроек апача?.. Но тогда на обычном шаред хостинге нет никакого шанса что-либо изменить Жаль

Апач тут не при чем. Читать мануал надо внимательно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

"железокаменный метеорит" мог образоваться от расплавления металлических конструкций в результате например ядерного взрыва и стекания жидкого железа в какой нибудь щебень (c) Иванов С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines