All streams
Search
Write a publication
Pull to refresh
78
0
Sayan Malakshinov @xtender

FBCS, Oracle ACE, performance tuning expert

Send message
Эхъ… оказывается все демоны грабли…
Кстати, в windows есть kill. И под вашу задачу перезапуска скрипта обычно используют kill -HUP. И как же интересно вы будете принудительно стопить зависший демон без килла? Ждать когда лимиты ваш демон превысит?
Более того, даже бог с ним, оставляйте свой «стоп файл», но теперь-то прочитав про pid-файлы, уберите свои убогие .works файлы, и используйте нормальные pid-файлы. Информация в них все равно лишняя — время запуска скрипта определяется по дате создания pid-файла.
А под виндовс кстати может хоть 10 процессов одной и той же программы быть запущено и у каждой будет свой pid

Угу, а под *nix'ами? У всех один? :D
Ну, ей-богу… Окститесь и почитайте… Каждый программер, имхо, хоть раз в жизни, да писал демоны, и вам тоже нужно пройти этот этап. Не воспринимайте все в штыки, просто поизучайте…
А если… А если… А если под виндой, то лучше уж сервисы использовать.
Я удивляюсь… Вы таки удосужились хоть немножко прочитать что такое pid-file? Я вообще-то как раз и советую пользоваться pid-файлами! По-поводу именования же pid-файлов, вам стоит узнать как запускают по два и более экземпляров демонов. Вообще погуглите на слово daemonize.
И блокирующий файл <кодовое имя>.pid, означает блокировку запуска дубликата!
Слать сигналы это правильное и стандартное решение.
ru.php.net/manual/en/function.posix-kill.php
Хмъ, видимо зря писал :) Ну хоть плюшки всем раздам :)
И вообще, что за идентификация процесса по имени скрипта? А если один скрипт с разными параметрами? Поизучайте, что такое демоны вообще.
Гляжу в книгу…
Никто и не предлагает удалять pid-файл для остановки процесса — это у вас свои тараканы. Процессу надо слать сигналы! А процесс должен как полагается обработать сигнал, и, если пришел сигнал завершиться, то завершается, завершив все свои неотложные дела. Все ж таки ж не почитали про сигналы…
Pid-файлы вы сами должны создавать! В крайнем случае сделать ps aux | grep имя_скрипта.
Апач это апач, он в единственном числе всегда.

А может сначала посмотреть как запускается апач? Или попробовать запустить апач при запущенном его экземпляре, или остановить при остановленном?
Что за дикое нежелание изучать?
Ну что ж такое то… Ну хоть немножко пощупали матчасть бы. Для остановки процесса читают pid-файл и шлют сигнал тому процессу, что нужно остановиться.
А как апач узнает, что он уже запущен или остановлен? Вы так и не посмотрели в /var/run…
Я люблю perl-гольф, а он еще бесполезнее, чем HomeLISP :)
Видимо, вы очень мало знакомы с администрированием. В качестве «статус файлов», как вы называете, обычно используются файлы *.pid находящиеся в заранее определенном месте(например, можете посмотреть в /var/run). Скрипты, запускаемые по крону смотрят есть ли этот файл, и проверяют есть ли процесс с данным PID и если есть, то завершаются. «Возможные утечки памяти» это отдельная песня. Обработка сигналов в самом скрипте как раз и позволит завершать задачу, тогда когда это можно. А уж что тривиальнее для принудительной остановки скрипта, чем kill -9 PID.
Почитал, посмотрел… Честного говоря, GT.M выглядит как-то сыровато.
Не сразу заметил, что парсер кое-что съел…
Не знаю как насчет VPS, но если есть доступ к крону то, наверное, и доступ к kill есть. Посмотрите, man kill и php.net/pcntl
Вы никогда не программировали просто так для души?
Браво! Всегда радует такая любовь к языку :)

Information

Rating
Does not participate
Date of birth
Registered
Activity