[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как перезапустить пхп скрипт из себя?
deconf
привет,

У меня проблема - скрипт который я запускаю (не мой код) имеет кучу мемори леаков изза PDO, поэтому его надо раз в день перезапускать, что я и делаю ручками. Хотелось бы познать как можно рестартнуть скрипт из себя, т.е. без использования крона и других тулз.
Я пробовал system/exec/``, и все они убивают бекграунд скрипты (чайлдренов) когда после строки запуска идёт exit() (например).
вот код который я пробовал последний:

exec("php script.php ".' >/dev/null 2>/dev/null & echo $! & disown');
exit(0);

Вопрос:
Как правильно рестартнуть скрипт из себя так, чтобы потом не убивались чайлдрены?



Спустя 45 минут, 42 секунды (20.12.2011 - 10:22) vital написал(а):
Напишите отдельный форкер на баше.
while 1==1
ps aux | grep _скрипт_ | если есть ничего если нету запустить.

Спустя 18 минут, 16 секунд (20.12.2011 - 10:40) deconf написал(а):
ну подпрегалось средсвами пхп это всё решить а не замутки на кроне или другом скрипте

Спустя 4 минуты, 48 секунд (20.12.2011 - 10:45) kovaldm написал(а):
Тогда нужно чтобы скрипт работал круглосуточно.

Спустя 3 минуты, 49 секунд (20.12.2011 - 10:48) deconf написал(а):
kovaldm, так и есть - он работает 24 часа.

Спустя 1 минута, 53 секунды (20.12.2011 - 10:50) kovaldm написал(а):
php скрипт?
А что он делает? Если не секрет.

Спустя 1 минута, 10 секунд (20.12.2011 - 10:52) deconf написал(а):
работает с яндекс директом, устанавливает цены на обьявления

Спустя 2 часа, 44 минуты, 10 секунд (20.12.2011 - 13:36) mid написал(а):
Вот у меня например скрипт бэкапа баз данных.Он каждый день создает новый бэкап.Чтобы он работал 24часа,я просто добавил на каждую страницу include на этот скрипт.Вот и все дела.

Спустя 53 секунды (20.12.2011 - 13:37) mid написал(а):
Без всяких кронов обошелся!

Спустя 46 минут, 39 секунд (20.12.2011 - 14:23) deconf написал(а):
mid причом тут твоя тематика и тема поста?

Спустя 28 минут, 35 секунд (20.12.2011 - 14:52) Zerstoren написал(а):
Всеж таки я бы юзал демона и желательно не на PHP

Спустя 29 минут, 13 секунд (20.12.2011 - 15:21) deconf написал(а):
Zerstoren это тут тоже не причом, чуш не несите оба.
Вопрос ясно поставлен: как перезапустить самого себя на пхп.

Спустя 1 час, 30 минут, 5 секунд (20.12.2011 - 16:51) SlavaFr написал(а):
Цитата (deconf @ 20.12.2011 - 12:21)
Zerstoren это тут тоже не причом, чуш не несите оба.

не плохое начало в форуме.

а пхп действительно самое последнее средство, которым я бы для этих целей пользовался, что небудь что threads знает, например Java подошло бы.

Спустя 1 час, 15 минут, 15 секунд (20.12.2011 - 18:06) I++ написал(а):
Много холивара

Вот как делаю я:

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
pclose(popen('start php.exe '.$this->file_name.' '.$this->socket_port, 'r'));
else
pclose(popen('php '.$this->file_name.' '.$this->socket_port.' > /dev/null &', 'r'));


Еще можно через форк, в этом случае данные сохранятся, которые были в переменных. Но там нужно чаилда отсоиденять от родителя. Но если требуется просто перезапускать самого себя, код выше работает на ура.

P.S Форк не спасет от ликов :lol:

Интересно, почему у Вас течет php? Какие модули стоят, у меня куча демонов крутятся годами...

Спустя 4 часа, 4 минуты, 17 секунд (20.12.2011 - 22:11) vital написал(а):
Цитата
Интересно, почему у Вас течет php? Какие модули стоят, у меня куча демонов крутятся годами...

Руки такие же кривые, как и самоуверенность.

Спустя 10 часов, 32 минуты, 32 секунды (21.12.2011 - 08:43) deconf написал(а):
I++ спасибо, походу ты понял тему, похоже что твой вариант как раз то что надо, правда могут такие функции не вкомпилены в пхп - например на покупном хостинге.
А утечка там просто долбоёб бывший програмёр который это всё писал, он ебанько один из тех кто пишет кучу каментов описывая двумя строками коментов одну строчку кода. Короче там куча бейз функции вызывается PDO и гдето результсы не освобождаюца. Просто щаз это править всё это пиздец как дохуя, вариант с перезапуском круче.

Спустя 1 час, 32 минуты, 50 секунд (21.12.2011 - 10:16) m4a1fox написал(а):
deconf
оффтоп
Свернутый текст
Однако красноречиво!

Спустя 4 часа, 11 минут, 39 секунд (21.12.2011 - 14:28) deconf написал(а):
да пошёл ты нахуй долбаёп бля ёбаный. пиздец форум - никто не знает нихуя ответов на простейшие вопросы, лиш бы попиздеть на другого.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.