Как перезапустить единорога вручную

Я не уверен, что единорог перезапускается правильно, когда я бегу cap deploy поскольку определенные изменения не отображаются в приложении, поэтому я хотел перезапустить единорога вручную на моем удаленном сервере. Я вошел в etc/init.d и увидеть список для unicorn_myapp но это не каталог (т. е. я не могу войти в него). Основываясь на приведенном ниже коде из моего файла deploy.rb, могу ли я что-то сделать для перезапуска единорога?

Я пытался сделать run unicorn_myapp restart но сказано run не команда

namespace :deploy do
  %w[start stop restart].each do |command|
    desc "#{command} unicorn server"
    task command, roles: :app, except: {no_release: true} do
      run "/etc/init.d/unicorn_#{application} #{command}"
    end
  end

3 ответа

Решение

Вы не перечислили ОС. но одно из следующего должно работать.

вам нужно быть пользователем root / использовать sudo

/etc/init.d/unicorn_myapp restart 


/etc/init.d/unicorn_myapp stop 
/etc/init.d/unicorn_myapp start 


service unicorn_myapp restart

service unicorn_myapp stop
service unicorn_myapp start

Сначала попробуйте перезапустить версии, но в зависимости от того, как был написан скрипт инициализации, у него может не быть команды перезапуска, если это не сработает, вы можете сделать остановку / запуск версии.

В качестве альтернативы, вместо того, чтобы полагаться на /etc/init.d... скрипты, которые зависят от ОС, простой способ перезапустить единорога - это отправить HUP (1) сигнал к своему основному процессу.

Вот, например, как я автоматически перезагрузить приложение после git push с помощью post-receive крюк:

#!/bin/sh
unicorn_pid=`cat /tmp/pids/unicorn.pid`
echo "Restarting Unicorn ($unicorn_pid)"
kill -HUP $unicorn_pid

В твоем случае, /etc/init.d/unicorn_myapp restart Сценарий, вероятно, делает это. Проверьте unicorn.conf для определения местоположения его pid-файла.

Для получения более подробной информации смотрите документацию по единорогам СИГНАЛОВ

Возможно, вы должны быть root, но это должно быть просто /etc/init.d/unicorn_myapp restart (не включать run, который не является командой оболочки).

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