Как я могу контролировать скрипт PHP с BluePill? - PullRequest
0 голосов
/ 18 марта 2011

Я создал рабочий скрипт Beanstalkd (использующий библиотеку Pheanstalk ) для обработки большого пальца изображений при загрузке и хотел реализовать BluePill для мониторинга / daemonize рабочий скрипт, но BluePill не запускает процесс и просто циклически переключается между запуском и остановкой.

Можно ли даже использовать BluePill для мониторинга / демонизации PHP-скрипта? Все примеры конфигурационных файлов, которые я нашел через Google, были для приложений Rails. Я предпочитаю Ruby, а не PHP, и хотел попробовать что-то кроме супервизора, потому что, откровенно говоря, мне больше понравился синтаксис BluePill.

Вот мой скрипт BluePill:

Bluepill.application("WorkerThumnail") do |app|
  app.process("thumbnail_watch") do |process|
    process.start_command = "/usr/local/bin/php /var/www/example.com/staging/shared/tasks/WorkerThumbnail.php"
    process.pid_file = "/tmp/beanstalk_thumbnail_worker.pid"
    process.daemonize = true

    process.start_grace_time = 3.seconds
    process.stop_grace_time = 5.seconds
    process.restart_grace_time = 8.seconds

    ###########################################
    # Memory and CPU Usage checks to make sure 
    # we don't have a runaway
    ###########################################

    # Check every 20 seconds to make the CPU usage is below 5%; 
    # if 3 out of 5 checks failed then restart the process
    process.checks :cpu_usage, :every => 20.seconds, :below => 5, :times => [3,5]

    # Check every 10 seconds to make the Memory usage is below 100 MB; 
    # if 3 out of 5 checks failed then restart the process
    process.checks :mem_usage, :every => 10.seconds, :below => 100.megabytes, :times => [3,5]
  end 
end

Когда я запускаю сценарий BluePill на переднем плане, я вижу, что следующий вывод повторяется снова и снова, пока я не завершу процесс вручную

[warning]: [WorkerThumnail:thumbnail_watch] Executing start command: /usr/local/bin/php 
/var/www/example.com/staging/shared/tasks/WorkerThumbnail.php
[info]: [WorkerThumnail:thumbnail_watch] Going from down => starting
[info]: [WorkerThumnail:thumbnail_watch] Going from starting => down
[warning]: [WorkerThumnail:thumbnail_watch] Executing start command: /usr/local/bin/php /var/www/example.com/staging/shared/tasks/WorkerThumbnail.php
[info]: [WorkerThumnail:thumbnail_watch] Going from down => starting
[info]: [WorkerThumnail:thumbnail_watch] Going from starting => down
[warning]: [WorkerThumnail:thumbnail_watch] Executing start command: /usr/local/bin/php /var/www/example.com/staging/shared/tasks/WorkerThumbnail.php
[info]: [WorkerThumnail:thumbnail_watch] Going from down => starting
[info]: [WorkerThumnail:thumbnail_watch] Going from starting => down
[warning]: [WorkerThumnail:thumbnail_watch] Executing start command: /usr/local/bin/php /var/www/example.com/staging/shared/tasks/WorkerThumbnail.php
[info]: [WorkerThumnail:thumbnail_watch] Going from down => starting
[info]: [WorkerThumnail:thumbnail_watch] Going from starting => down

1 Ответ

0 голосов
/ 18 марта 2011

Для потомков:

Имейте в виду, что ваш CWD из CLI будет отличаться от того, когда он запускается в качестве демона через BluePill, поэтому, если вы используете относительные каталоги, настройте соответственно.

Не стесняйтесь обновлять, если это не является реальной проблемой.

...