
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
۩
Дата
|
||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 6 месяцев, 26 дней ![]() |
Создаю тему для будущих поколений, может кому-то пригодиться. Перепост из СМСок: Есть тяжелый php-скрипт, запускаемый по расписанию cron'ом в CLI-режиме. Скрипт может работать часами. Нужно из под консоли проверить, запущен ли этот скрипт в данный момент времени. Debian 4.4.5-8 Спустя 1 минута, 31 секунда Invis1ble написал(а): killer8080 >> Invis1ble >> попробуй ps -Af | grep script_name killer8080 >> нужно от рута
судя по всему - не запущен? PS. насчет параметра f у ps - не знал ) -------------------- |
||
![]() |
|||||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 9630 Пользователь №: 26630 На форуме: Карма: 664 ![]() |
нет, не запущен, иначе была бы строчка с параметрами запуска скрипта.
можно было бы обойтись без него, если скрипт запускается напрямую, по имени, а не как параметр к php вида php -f /path/to/script.php |
||||
![]() |
|
![]() ![]() Мимокрокодил ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 1777 Пользователь №: 19760 На форуме: Карма: 59 ![]() |
Если из под линуха то:
ps fax | grep script_name Можно без рута. -------------------- Безвозмездно помогаю только тем, кто сам пытается что-то сделать.
Остальным за WMR Даже если там 10 строк кода! Даже если мне это ничего не стоит! Даже если вы нуб! ![]() |
![]() |
۩
Дата
|
||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 6 месяцев, 26 дней ![]() |
killer8080 спасибо да, скрипт запускается с параметрами командой /usr/bin/php /путь/index.php --uri=cron/update_sitemap TranceIT
вобщем-то, результат тот же Всем спасибо. -------------------- |
||
![]() |
|||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 9630 Пользователь №: 26630 На форуме: Карма: 664 ![]() |
да, ты прав, перестраховщик я ![]() |
||
![]() |
|||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 9630 Пользователь №: 26630 На форуме: Карма: 664 ![]() |
не совсем, с -fA видно время запуска скрипта |
||
![]() |
۩
Дата
|
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 6 месяцев, 26 дней ![]() |
ну, мне оно не нужно все равно ![]() -------------------- |
||||
![]() |
|
![]() ![]() орангутанг ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2120 Пользователь №: 36605 На форуме: Карма: 115 ![]() |
у меня проверка таким образом, по сути доработать в правильном направлении.
у меня работает один небольшой пхп демон, а вот так я проверяю что не запущено ли еще демонов public function isActive() |
![]() |
|
![]() ![]() орангутанг ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2120 Пользователь №: 36605 На форуме: Карма: 115 ![]() |
собственно нужен механизм которым ты тот файлик запишешь и создаешь и запишишь туда процесс id
например так protected function lock() |
![]() |
|
![]() ![]() Мимокрокодил ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 1777 Пользователь №: 19760 На форуме: Карма: 59 ![]() |
Зачем файлики создавать?
Можно через exec() следить за выполнением в реальном времени где-нибудь в админке... -------------------- Безвозмездно помогаю только тем, кто сам пытается что-то сделать.
Остальным за WMR Даже если там 10 строк кода! Даже если мне это ничего не стоит! Даже если вы нуб! ![]() |
![]() |
۩
Дата
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 6 месяцев, 26 дней ![]() |
bestxp
у нас с тобой немного разные задачи моя - просто узнать, запущен ли и если нет - найти причину, почему перестал работать и перезапустить ![]() -------------------- |
![]() |
[x]
Дата
|
||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 9630 Пользователь №: 26630 На форуме: Карма: 664 ![]() |
не совсем корректно блокировать запуск демона только по пиду, т.к. он не является уникальным. Может быть ситуация когда пид файл останется, по причине какого нибудь сбоя, приведшего к перезагрузке. При следующем старте этот пид может оказаться у другого процесса, и твой демон не запустится, пока ты его ручками не убьёшь. Я делал так //$CMD = basename($argv[0]); |
||
![]() |
|
![]() ![]() орангутанг ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2120 Пользователь №: 36605 На форуме: Карма: 115 ![]() |
ну пока выбранный вариант не мешал,
новый вариант который я рассматриваю это атомарные операции а именно блокировка этого самого pid файла, в итоге пока на файле лок, всё работает, если лок пропадет, значит не работает. у меня то демон вообще висит while($this->server_start){} то есть бесконечный цикл |
![]() |
![]() ![]() ![]() |