|
|
|
| Как написать простеший демон и увидеть что он работает.
( например типа Хелло, а лучше что-бы он останавливал работу другого скрипта ( процесса) | |
|
|
|
|
|
|
|
для: добряк
(12.03.2014 в 15:27)
| | У Ставинского спроси, у него скрипт работает даже после удаления
http://softtime.ru/forum/read.php?id_forum=1&id_theme=63530 | |
|
|
|
|
|
|
|
для: elenaki
(12.03.2014 в 20:10)
| | Я его спросил. Спросил как он удалил и как он знает что тот все равно работает | |
|
|
|
|
|
|
|
для: elenaki
(12.03.2014 в 20:10)
| | вы так говорите, как будто это ненормально и какая-то особая магия | |
|
|
|
|
|
|
|
для: psychomc
(12.03.2014 в 21:25)
| | Ну подскажите пожалуйста простой скрипт, типо хелло, что-бы по заданному времени вырубал другой скрипт. | |
|
|
|
|
|
|
|
для: добряк
(12.03.2014 в 21:50)
| | я сомневаюсь, что такое делают средствами php. а вообще, тут нет ничего сложного. например, первый скрипт может проверять наличие временного файла на диске, и если он есть - останавливаться с помощью exit. второй же скрипт будет этот файл сохранять в заданное время. | |
|
|
|
|
|
|
|
для: psychomc
(13.03.2014 в 01:48)
| | Вот мне такой вариант и нужен. Подскажите пожалуйста, где найти.
Собственно, как я и читал на хабрахабре, создают временный файл pid.
Скажем при появлении его запуск - демона, при исчезновении - закрытие демона.
http://habrahabr.ru/post/40432/
$pid = pcntl_fork();
if ($pid == -1) {
//ошибка
} elseif ($pid) {
//сюда попадет родительский процесс
} else {
//а сюда - дочерний процесс
}
//а сюда попадут оба процесса
|
ВОт готовая болванка тоже http://www.php.su/functions/?cat=pcntl, но не работает pcntl_fork()
Вот еще вариант http://uk0.us/2011/05/daemons-base/ тоже не работатет pcntl_fork()
Не понятно как автор запускает просмотр процессов.
В Винде я знаю диспетчер, спай и др.. Но должен ли там появится процесс демонизации
Точнее говоря не получается самое начало.
Но мне не удается отсоединится от родительского процесса, не работает под виндой pcntl_fork();
Где то я читал, что вообще можно без pcntl_fork()( http://www.php.su/functions/?pcntl-fork)
Для чего он нужен pcntl_fork();? Регистрация в ОС и получения сигналов семафоров?
Вы описали мой случай, осталось немножко что-бы проклюнуло/
Мой вариант такой.
Клиент ( посетитель) запускает что-то то там родительское ( скажем запрос с Мускл) и запускается дочерний, начиная отсчет времени работы.
Если родитель закончил раньше времени , то дочерний вырубается.
Если родитель работает больше времени, чем прописано, то дочерний вырубает его | |
|
|
|
|
|
|
|
для: добряк
(13.03.2014 в 10:56)
| | может быть стоит попробовать поставить большое время выполнения скрипта и сделать бесконечный цикл? | |
|
|
|
|
|
|
|
для: psychomc
(13.03.2014 в 12:20)
| | У меня почему то до 150 секунд стали выполнятся запросы ботов, вместо 0.0001.
Это время огромный минус - кто то грузит, что-то зависает.
Робот минусует ранг.
Надо либо чистить зависшие процессы, либо ограничивать время работы скрипта.
На файлах я делал раньше бесконечный цикл с замером времени и при превышении exit.
Ну а в MySQL я не знаю как.
Другой момент, это мое мнение, что MySQL порождает массу заморочек.
Это мое мнение, но каждая сложная, мощная новая подсистема с миллионами установками по умолчанию создает как уязвимости, так и пожирает время на обслуживание.
Ну есть там всякие законы Мерфи и другие, так это как раз по ним проблемка.
Ну вот темку нашел
http://phpclub.ru/talk/threads/Помогите-убить-выполняемый-скрипт.45610/
http://phpclub.ru/talk/threads/Ограничение-вермени-выполнения-запроса.68652/
http://www.sql.ru/forum/1033296/ogranichenie-vremeni-vypolneniya-zaprosa
Из вышеперечисленного, а так же из-за принципов поисковых роботов( какое зло меньшее) придерживаюсь мнения
типа крон-процесса , каждые 10 секунд , читать,определять давновисячие процессы и УБИВАТЬ | |
|
|
|