Как я могу контролировать скрипт PHP с BluePill?

Я создал рабочий сценарий Beanstalkd (используя библиотеку Pheanstalk) для обработки большого количества изображений при загрузке и хотел реализовать BluePill для мониторинга / демонизации рабочего сценария, но 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 ответ

Решение

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

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

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

Другие вопросы по тегам