nginx.pid исчезает при запуске nginx через Capistrano3.9.1 - PullRequest
0 голосов
/ 03 июня 2019

Я использую Capistrano в своем приложении RoR и nginx на сервере. Есть 2 приложения, которые используют разные nginx.conf, поэтому для каждого я убиваю предыдущий процесс nginx, затем запускаю новый процесс. Когда я делаю это вручную, это нормально. но когда я запускаю nginx через Capistrano, nginx.pid как-то исчезает (иногда), поэтому я не могу убить мастер-процесс и не могу его запустить. Сервер не может подключиться к другим людям, кроме меня, и нет другого сценария запуска. Pid другого nginx (nginx_2.pid) никогда не исчезал, поэтому я понятия не имею, почему исключен только один nginx.pid.

Вот моя задача прекомпиляции и перезапуска.

...

task :precompile_assets do
    on roles(:application) do
      execute %(cd #{fetch(:application_path)}; bundle exec rails assets:clobber assets:precompile RAILS_ENV=staging RAILS_RELATIVE_URL_ROOT=#{ENV['PROJECT_ROOT']}; if [[ -f /run/nginx.pid ]]; then sudo kill -QUIT $(cat /run/nginx.pid); fi; sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf; )
    end
  end

  desc 'restart server for the other server'
  task :restart_server do
    on roles(:otr) do
      execute 'if [[ -f /run/nginx_2.pid ]]; then sudo kill -QUIT $(cat /run/nginx_2.pid); fi; sudo /usr/sbin/nginx -c /etc/nginx/nginx_2.conf;'
    end

А вот и мой nginx.conf.

user nginx_user;
worker_process auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf

events {
         worker_connections 768;
       }
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...