Я использую этот камень для развертывания kapify.monit не находит единорога на рабочем сервере
Это мой единорог конфигурации:
у меня в развёртывании:
server "111.111.111.111", :web, :app, :db, primary: true
set :application, 'myapp'
set :user, "hyperrjas"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
set :scm, "git"
set :repository, "path_to_my_remote_reposytory.git"
set :branch, "master"
set :current_path, "/home/#{user}/apps/#{application}/current"
set :shared_path, "/home/#{user}/apps/#{application}/shared"
set :unicorn_workers, 1
set :unicorn_pid, "#{shared_path}/pids/unicorn.pid"
set :server_name, "myserver.com"
это мой PID в удаленном сервере:
ps aux | grep unicorn
1000 6037 0.4 12.5 320464 127628 ? Sl 14:09 0:37 unicorn master -c /home/hyperrjas/apps/myapp/shared/config/unicorn.rb -D
1000 6079 0.2 13.8 335784 140828 ? Sl 14:10 0:17 unicorn worker[0] -c /home/hyperrjas/apps/myapp/shared/config/unicorn.rb -D
1000 6322 0.0 0.0 9384 868 pts/0 S+ 16:14 0:00 grep unicorn
это мой config/deploy/templates/monit/unicorn.erb
файл:
check process myapp_unicorn with pidfile /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.pid
start program = "/etc/init.d/unicorn_myapp start"
stop program = "/etc/init.d/unicorn_myapp force-stop"
check process myapp_unicorn_worker_0 with pidfile /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid
start program = "/bin/true"
stop program = "/usr/bin/test -s /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid && /bin/kill -QUIT `cat /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid`"
if mem > 200.0 MB for 5 cycles then restart
if cpu > 50% for 15 cycles then restart
if 5 restarts within 25 cycles then timeout
alert [email protected] only on { pid }
if changed pid 2 times within 64 cycles then alert
я могу видеть в Monit следующий путь к единорога рабочего PID:
Pid file /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid
И сообщение:
Status Not monitored
Единорог pid в удаленном сервере ar е в /home/myapp/apps/myapp/current/tmp/pids/unicorn.pid
Я не могу видеть ИДП unicorn.0.pid
в /home/hyperrjas/apps/myapp/current/tmp/pids/
Monit контролирует штраф единорог PID.
Как я могу контролировать с помощью monit моего единорога?
Благодарим за отзыв. Я использую этот gem https://github.com/ivalkeen/kapify для развертывания, и все работает отлично, за исключением monit для работника единорога. Я думаю, что проблема заключается в том, что 'Monit' не может видеть' unicorn.0.pid' в папке '/ home/hyperrjas/apps/myapp/current/tmp/pids /'. У меня есть 2 файла в этой папке: 'delayed_job.pid' и' unicorn.pid'. Большое спасибо – hyperrjas
Скорее всего, потому, что к тому времени, когда вы развернули, каталог 'current' был повторно привязан. Попробуйте разобрать единорог, чтобы сохранить файл PID в '/ home/hyperrjas/apps/myapp/shared/pids' или что-то подобное, поскольку каталог' shared' не изменится. – CDub
Я изменил свою папку pid на '/ home/hyperrjas/apps/myapp/shared/pids', и у меня такая же проблема: я вижу в monit красное сообщение' Execution failed 'с моим единорогом. Я могу видеть в monit 'Pid file/home/hyperrjas/apps/myapp/shared/pids/unicorn.0.pid'. Однако я не могу видеть этот файл pid в '/ home/hyperrjas/apps/myapp/shared/pids /' В этой папке я могу увидеть только 1 файл: 'unicorn.pid' Большое спасибо! – hyperrjas