Giter Site home page Giter Site logo

capistrano3-unicorn's People

Contributors

ahorner avatar crumbjp avatar davidbennettpio avatar lxxdn avatar mlineen avatar nicktomlin avatar paulca avatar soulcutter avatar weshouman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

capistrano3-unicorn's Issues

Template for unicorn.rb config file

Hi,
I'm doing an investigation on the capistrano unicorn plugins..
The goal for my rails app deployment would be to deploy it with minimum hassle and boilerplate using the standard unicorn (+nginx + postgres) deployment process.

I noticed both this plugin and the capistrano2 one here do not have the support for unicorn.rb config file template.

Is there a specific reason why the support for that was omitted? (maybe it's a bad practice of some kind, or it's best for everyone to learn how to write their own unicorn config file, I have no idea)

On the other hand, this guy here implemented a support for it.

As a "dumb" user, I'd really prefer all of that boilerplate is handled for me with sane defaults, and the ability to override for those hackers out there.

Is this a feature that would be welcomed if a pull request was submitted to this plugin?
Thanks!

Can't create a unicorn.pid

Hey,

I run deploy unicorn:start and I see of error:

[3905a1bb] Command: [ -e /home/ubuntu/apps/prs/current/tmp/pids/unicorn.pid ] && kill -0 `cat /home/ubuntu/apps/prs/current/tmp/pids/unicorn.pid`
DEBUG [3905a1bb] Finished in 0.095 seconds with exit status 1 (failed).

In deploy.rb I have:

set :unicorn_pid,  "/home/ubuntu/apps/prts/current/tmp/pids/unicorn.pid"

Error: Address already in use, on restart, when sending QUIT to the old process

I figured, this line prevents new instance of unicorn from starting if old instance has already been running:

execute :kill, "-s QUIT", pid_oldbin

As a result, neither of the instances is running:

ruby/2.1.0/gems/unicorn-4.8.3/lib/unicorn/socket_helper.rb:158:in `initialize': Address already in use - connect(2)

So I end up having every second deploy failed. Magically, if I just comment the line, it works.

unicorn.pid not writable (ArgumentError)

I have setup by follow your instruction.
But when I run cap production unicorn:start.

It show unicorn.pid not writable (ArgumentError), and unicorn doesn't start.

Rails app responds very slow after deploy

I upgraded capistrano from 3.0 to 3.1 and start using this gem. But after each deployment, the rails app is not responding very fast and I was wondering if there are any problem with this gem.

I noticed in my unicorn config file in before_fork block, it already tried to kill the old bin. But in https://github.com/tablexi/capistrano3-unicorn/blob/master/lib/capistrano3/tasks/unicorn.rake#L68 it tries to kill the old bin again? Is my understanding correct?

Could anyone also help to check the following file and log to see if there is any problem?

Thanks

My unicorn config file and capistrano3 log are appended.

Here is my unicorn config file:

# unicorn_rails -c /var/www/wanhuatong/current/config/server/unicorn.rb -E production -D

DEPLOY_TO = "/var/www/wanhuatong"
APP_ROOT = DEPLOY_TO + "/current"
SHARED_ROOT = DEPLOY_TO + "/shared"

stderr_path SHARED_ROOT + "/log/unicorn.stderr.log"
stdout_path SHARED_ROOT + "/log/unicorn.stdout.log"

listen SHARED_ROOT + "/tmp/sockets/unicorn.socket"
timeout 30

PID_FILE = SHARED_ROOT + "/tmp/pids/unicorn.pid"
pid PID_FILE

working_directory APP_ROOT

preload_app true

if GC.respond_to?(:copy_on_write_friendly=)
  GC.copy_on_write_friendly = true
end

before_fork do |server, worker|
  ##
  # When sent a USR2, Unicorn will suffix its pidfile with .oldbin and
  # immediately start loading up a new version of itself (loaded with a new
  # version of our app). When this new Unicorn is completely loaded
  # it will begin spawning workers. The first worker spawned will check to
  # see if an .oldbin pidfile exists. If so, this means we've just booted up
  # a new Unicorn and need to tell the old one that it can now die. To do so
  # we send it a QUIT.
  #
  # Using this method we get 0 downtime deploys.

  old_pid = PID_FILE + '.oldbin'
  if File.exists?(old_pid) && server.pid != old_pid
    begin
      Process.kill("QUIT", File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
      # someone else did our job for us
    end
  end

  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.connection.disconnect!
  end
end

after_fork do |server, worker|
  ##
  # Unicorn master loads the app then forks off workers - because of the way
  # Unix forking works, we need to make sure we aren't using any of the parent's
  # sockets, e.g. db connection

  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.establish_connection
  end
end

The following is Invoke deploy:restart

** Invoke deploy:restart (first_time)
** Execute deploy:restart
** Invoke unicorn:restart (first_time)
** Execute unicorn:restart
** Invoke unicorn:start (first_time)
** Execute unicorn:start
DEBUG [206ed16e] Running /usr/bin/env if test ! -d /var/www/wanhuatong/current; then echo "Directory does not exist '/var/www/wanhuatong/current'" 1>&2; false; fi on wanhuatong.ca
DEBUG [206ed16e] Command: if test ! -d /var/www/wanhuatong/current; then echo "Directory does not exist '/var/www/wanhuatong/current'" 1>&2; false; fi
DEBUG [206ed16e] Finished in 0.151 seconds with exit status 0 (successful).
DEBUG [ce55cdc5] Running /usr/bin/env [ -e /var/www/wanhuatong/current/tmp/pids/unicorn.pid ] && kill -0 `cat /var/www/wanhuatong/current/tmp/pids/unicorn.pid` on wanhuatong.ca
DEBUG [ce55cdc5] Command: [ -e /var/www/wanhuatong/current/tmp/pids/unicorn.pid ] && kill -0 `cat /var/www/wanhuatong/current/tmp/pids/unicorn.pid`
DEBUG [ce55cdc5] Finished in 0.171 seconds with exit status 0 (successful).
 INFO unicorn is running...
DEBUG [a410b841] Running /usr/bin/env if test ! -d /var/www/wanhuatong/current; then echo "Directory does not exist '/var/www/wanhuatong/current'" 1>&2; false; fi on wanhuatong.ca
DEBUG [a410b841] Command: if test ! -d /var/www/wanhuatong/current; then echo "Directory does not exist '/var/www/wanhuatong/current'" 1>&2; false; fi
DEBUG [a410b841] Finished in 0.138 seconds with exit status 0 (successful).
 INFO unicorn restarting...
 INFO [cea39383] Running /usr/bin/env kill -s USR2 `cat /var/www/wanhuatong/current/tmp/pids/unicorn.pid` on wanhuatong.ca
DEBUG [cea39383] Command: cd /var/www/wanhuatong/current && /usr/bin/env kill -s USR2 `cat /var/www/wanhuatong/current/tmp/pids/unicorn.pid`
 INFO [cea39383] Finished in 0.258 seconds with exit status 0 (successful).
 INFO [38df785a] Running /usr/bin/env sleep 3 on wanhuatong.ca
DEBUG [38df785a] Command: cd /var/www/wanhuatong/current && /usr/bin/env sleep 3
 INFO [38df785a] Finished in 3.146 seconds with exit status 0 (successful).
DEBUG [1cc3167d] Running /usr/bin/env [ -e /var/www/wanhuatong/current/tmp/pids/unicorn.pid.oldbin ] on wanhuatong.ca
DEBUG [1cc3167d] Command: [ -e /var/www/wanhuatong/current/tmp/pids/unicorn.pid.oldbin ]
DEBUG [1cc3167d] Finished in 0.135 seconds with exit status 0 (successful).
 INFO [f8bf9cd3] Running /usr/bin/env kill -s QUIT `cat /var/www/wanhuatong/current/tmp/pids/unicorn.pid.oldbin` on wanhuatong.ca
DEBUG [f8bf9cd3] Command: cd /var/www/wanhuatong/current && /usr/bin/env kill -s QUIT `cat /var/www/wanhuatong/current/tmp/pids/unicorn.pid.oldbin`
 INFO [f8bf9cd3] Finished in 0.164 seconds with exit status 0 (successful).
** Invoke deploy:clear_cache (first_time)
** Execute deploy:clear_cache
** Invoke deploy:published (first_time)
** Execute deploy:published
** Invoke deploy:finishing (first_time)
** Execute deploy:finishing
** Invoke deploy:cleanup (first_time)
** Execute deploy:cleanup
DEBUG [f1f8a09f] Running /usr/bin/env ls -x /var/www/wanhuatong/releases on wanhuatong.ca
DEBUG [f1f8a09f] Command: /usr/bin/env ls -x /var/www/wanhuatong/releases
DEBUG [f1f8a09f] Finished in 1.584 seconds with exit status 0 (successful).
DEBUG [f1f8a09f]  20140320033805  20140322000442  20140322023114  20140322185639  20140323022953
DEBUG [f1f8a09f]  20140325145746
DEBUG [f1f8a09f] Finished in 1.584 seconds with exit status 0 (successful).
 INFO Keeping 5 of 6 deployed releases on wanhuatong.ca
 INFO [e646f2eb] Running /usr/bin/env rm -rf /var/www/wanhuatong/releases/20140320033805 on wanhuatong.ca
DEBUG [e646f2eb] Command: /usr/bin/env rm -rf /var/www/wanhuatong/releases/20140320033805
 INFO [e646f2eb] Finished in 1.946 seconds with exit status 0 (successful).
** Invoke deploy:finished (first_time)
** Execute deploy:finished
** Invoke deploy:log_revision (first_time)
** Execute deploy:log_revision
DEBUG [c35ccf37] Running /usr/bin/env if test ! -d /var/www/wanhuatong/releases; then echo "Directory does not exist '/var/www/wanhuatong/releases'" 1>&2; false; fi on wanhuatong.ca
DEBUG [c35ccf37] Command: if test ! -d /var/www/wanhuatong/releases; then echo "Directory does not exist '/var/www/wanhuatong/releases'" 1>&2; false; fi
DEBUG [c35ccf37] Finished in 0.284 seconds with exit status 0 (successful).
 INFO [7a6ec397] Running /usr/bin/env echo "Branch master (at c7f2811) deployed as release 20140325145746 by zhao; " >> /var/www/wanhuatong/revisions.log on wanhuatong.ca
DEBUG [7a6ec397] Command: echo "Branch master (at c7f2811) deployed as release 20140325145746 by zhao; " >> /var/www/wanhuatong/revisions.log
 INFO [7a6ec397] Finished in 0.548 seconds with exit status 0 (successful).

When running two unicorn servers, unicorn:stop must be executed twice

The first time unicorn:stop is executed the first unicorn is put to bed and an error is thrown. If you run unicorn:stop again the script passes successfully.

SSHKit::Runner::ExecuteError: Exception while executing as deploy@<ip>: undefined method `recv' for #<IO:fd 17>

NoMethodError: undefined method `recv' for #<IO:fd 17>

Unicorn cannot be stopped (issue with setting unicorn_pid)

I've got problem with stopping unicorn. Every time unicorn:stop returns unicorn is not running..., while unicorn working just fine.
unicorn:start works correctly run once. But run twice (one by one) should start unicorn once and then report info "unicorn is running...". But it tries to run unicorn again.

According to that, there is some problem with setting unicorn_pid by unicorn.rake.

Question

I'm using this unicorn config, but when I prompt cap unicorn:reload and cap unicorn:restart, the code is not updated, have you an example to fix it?

before_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
    Process.kill 'QUIT', Process.pid
  end

  defined?(ActiveRecord::Base) and
      ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
  end

  defined?(ActiveRecord::Base) and
      ActiveRecord::Base.establish_connection
end

Capistrano log

Ruby/coopetraban/admin_coopetraban[master*]% cap qa unicorn:restart
DEBUG [c91a0bb6] Running /usr/bin/env if test ! -d /home/pc1/administacion/current; then echo "Directory does not exist '/home/pc1/administacion/current'" 1>&2; false; fi on 192.168.1.200
DEBUG [c91a0bb6] Command: if test ! -d /home/pc1/administacion/current; then echo "Directory does not exist '/home/pc1/administacion/current'" 1>&2; false; fi
DEBUG [c91a0bb6] Finished in 0.169 seconds with exit status 0 (successful).
DEBUG [15616907] Running /usr/bin/env [ -e /tmp/pids/administracion.pid ] && kill -0 `cat /tmp/pids/administracion.pid` on 192.168.1.200
DEBUG [15616907] Command: [ -e /tmp/pids/administracion.pid ] && kill -0 `cat /tmp/pids/administracion.pid`
DEBUG [15616907] Finished in 0.009 seconds with exit status 0 (successful).
 INFO unicorn is running...
DEBUG [aa8e2700] Running /usr/bin/env if test ! -d /home/pc1/administacion/current; then echo "Directory does not exist '/home/pc1/administacion/current'" 1>&2; false; fi on 192.168.1.200
DEBUG [aa8e2700] Command: if test ! -d /home/pc1/administacion/current; then echo "Directory does not exist '/home/pc1/administacion/current'" 1>&2; false; fi
DEBUG [aa8e2700] Finished in 0.008 seconds with exit status 0 (successful).
 INFO unicorn restarting...
 INFO [7f13ac3a] Running /usr/bin/env kill -s USR2 `cat /tmp/pids/administracion.pid` on 192.168.1.200
DEBUG [7f13ac3a] Command: cd /home/pc1/administacion/current && /usr/bin/env kill -s USR2 `cat /tmp/pids/administracion.pid`
 INFO [7f13ac3a] Finished in 0.013 seconds with exit status 0 (successful).
 INFO [b53bc99b] Running /usr/bin/env sleep 3 on 192.168.1.200
DEBUG [b53bc99b] Command: cd /home/pc1/administacion/current && /usr/bin/env sleep 3
 INFO [b53bc99b] Finished in 3.035 seconds with exit status 0 (successful).
DEBUG [b88587a8] Running /usr/bin/env [ -e /tmp/pids/administracion.pid.oldbin ] on 192.168.1.200
DEBUG [b88587a8] Command: [ -e /tmp/pids/administracion.pid.oldbin ]
DEBUG [b88587a8] Finished in 0.012 seconds with exit status 0 (successful).
 INFO [4068118d] Running /usr/bin/env kill -s QUIT `cat /tmp/pids/administracion.pid.oldbin` on 192.168.1.200
DEBUG [4068118d] Command: cd /home/pc1/administacion/current && /usr/bin/env kill -s QUIT `cat /tmp/pids/administracion.pid.oldbin`
 INFO [4068118d] Finished in 0.012 seconds with exit status 0 (successful).

[BUG?] Task unicorn:reload sends reload signal even if Unicorn is cold-starting

When Unicorn is not runing and unicorn:restart or unicorn:reload fires it up, it also sends a reload/restart signal to the Unicorn too, which causes Unicorn to fork, but after it the oldbin did not get a QUIT signal.

I think Cap should not do this.

Version: capistrano3-unicorn (0.2.1)
Codes (only relevant pieces):

# config/deploy.rb
set :unicorn_config_path, -> { "#{release_path}/config/unicorn.rb" }
set :unicorn_rack_env, -> { fetch(:rails_env, 'development') }

namespace :deploy do
  after :publishing, :restart

  task(:restart) { invoke 'unicorn:restart' }
  task(:stop) { invoke 'unicorn:stop' }

  after :finishing, "deploy:cleanup"
end

# Capfile

# Load DSL and set up stages
require 'capistrano/multiconfig'

# Include default deployment tasks
require 'capistrano/deploy'

require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/assets' # for asset handling add
require 'capistrano/rails/migrations' # for running migrations
require 'capistrano3/unicorn'

Not reloading application code

i noticed unicorn is not reloading the application code, because it uses the old release path.

i think the issue is that unicorn uses within release_path instead of within current_path when starting unicorn. i'm using preload_app true and after :publishing, :restart. everything works as expected (spawning new master, killing old), except that i don't see any changes picked up. i noticed the line INFO -- : executing ["/var/www/trendmd/shared/bundle/ruby/2.1.0/bin/unicorn", "-c", "/var/www/trendmd/current/config/unicorn/staging.rb", "-E", "deployment", "-D", {11=>#<Kgio::UNIXServer:fd 11>}] (in /var/www/trendmd/releases/20140131104303) in my unicorn.log (note, the path releases/20140131104303 was the last deploy when unicorn was started not the current release e.g. releases/20140203160510), and if i cat /proc/$master_pid/environment i see:

...snip...
PWD=/var/www/trendmd/releases/20140131104303
RBENV_DIR=/var/www/trendmd/releases/20140131104303
BUNDLE_GEMFILE=/var/www/trendmd/releases/20140131104303/Gemfile
...snip...

i guess BUNDLE_GEMFILE comes from capistrano/bundler (i'm also using capistrano/rbenv but i don't see any explicit use of release_path like in capistrano/bundler), not sure if it's a problem.

i'm not sure if i missed something, but i verified that if i simply change the within release_path to current_path in the capistrano3-unicorn unicorn:start task, manually kill the unicorn and have start it with this, then it picks up application changes on new deploys (the unicorn.log still logs explicit path (eg not /current), but it gets refreshed, and PWD is /var/www/trendmd/current, RBENV_DIR is also current, BUNDLE_GEMFILE still points to old release though).

unrelated issue: i'm not sure why :unicorn_pid defaults to shared/pids/unicorn.pid instead of shared/tmp/pids/unicorn.pid (capistrano default template uses shared/tmp)

Sometimes, `set :unicorn_exec` not working...

deploy.rb

lock '3.11.0'
....
set :unicorn_exec, :unicorn_rails
...
namespace :unicorn do
  before :start, :logging

  task :logging do
    on roles :app do
      execute :echo, fetch(:unicorn_exec)
    end
  end
end

and execute log is below.

sizer@geb:~/capistrano3-unicorn-test
$ bundle exec cap staging unicorn:start
00:00 unicorn:logging
      01 echo unicorn_rails
      01 unicorn_rails
    ✔ 01 centos@staging 0.178s
00:00 unicorn:start
      01 RBENV_ROOT=~/.rbenv/ RBENV_VERSION=2.4.5 ~/.rbenv/bin/rbenv exec bundle exec unicorn -c ./config/unicorn.rb -E staging -D 
    ✔ 01 centos@staging 9.317s

echo returns 'unicorn_rails' correctly, but unicorn:start returns default value... 🤔

execute() has a subtle behaviour. When calling within './directory' { execute(:bundle, :install) } for example, the first argument to execute() is a Stringish with no whitespace. This allows the command to pass through the SSHKit::CommandMap which enables a number of powerful features.
https://capistranorb.com/documentation/getting-started/tasks/

I recommend that removing whitespace from tasks/unicorn.rake .

How to invoke unicorn:reload in sequence?

I'm trying to use this to reload each server in sequence, but all of the reloads are executed at once. I'm guessing it might have something to do with nested on blocks, since unicorn:reload already has an on.

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 15 do
      invoke 'unicorn:reload'
    end
  end

unicorn service can't be restarted and new routes are not found after deployment

My server is ubuntu 14.04. I can't see the unicorn service in /etc/init.d, and I can't service unicorn restart or service unicorn_myapp restart. Otherwise - the process id remains the same as it was, while the workers' process ids are changed ( I don't really know what it means)

The only way to restart and get a new process id is to kill -9 <process_id> and then to cap production deploy again.
If I don't do so, each time I add a new route it just can't be found...

  1. Do you know why the route is not found?
  2. Does it make sense that I can't restart the service?

Here is my capistrano deploy script:

set :application, 'myapp'
set :repo_url, '[email protected]:/opt/git/myapp.git'

ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call

set :use_sudo, false
set :bundle_binstubs, nil
# set :linked_files, fetch(:linked_files, []).push('config/mongoid.yml')
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')

after 'deploy:publishing', 'deploy:restart'

namespace :deploy do
  task :restart do
    invoke 'unicorn:reload'
  end
end

Unicorn stop unexpectedly.

I have a ecommerce website. At the time of checkout when it crop images and send the emails, unicorn stops working. It doesn't happen always but yes 50% of time it happens. which is very frustrating for me as well as my client.

`build': /home/releases/#{release_number}/Gemfile not found (Bundler::GemfileNotFound)

INFO -- : executing ["/home/shared/bundle/ruby/2.1.0/bin/unicorn", "-c", "/home/current/config/unicorn/production.rb", "-E", "deployment", "-D", {12=>#<Kgio::UNIXServer:fd 12>}] (in /home/releases/20140714144301)
DEBUG[b59ba27c]     I, [2014-07-14T14:43:33.495683 #27897]  INFO -- : forked child re-executing...
DEBUG[b59ba27c]     /home/
DEBUG[b59ba27c]     lic/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.3/lib/bundler/definition.rb:23:in `build': /home/releases/20140710032913/Gemfile not found (Bundler::GemfileNotFound)

I am pretty sure the problem stems from the fact that with zero-downtime deployment, unicorn is caching this release number: 20140710032913. I have capistrano set to keep 5 releases. After 5 deploys, the old release number is rolled off. How can I force unicorn to use the current Gemfile?

PID file location

I would like to ask why the PID is expected to be found inside the current path

I am relative new to Ruby deployment and just got capistrano working for me. So there goes one dumb assumption:

The unicorn process will be launched within the current folder, so if this contains 'tmp/' with the PID, it will be gone (rotated) by next cap production deploy

Wouldn't it be better to use by default ../shared (from current folder)

unicorn:restart failed

unicorn:restart invoke a new unicorn process but does not kill the old one. According to http://unicorn.bogomips.org/SIGNALS.html, USR2 + QUIT is required to restart unicorn, but unicorn:restart only send USR2.

Am I using it in the wrong way? Currently I've switched to unicorn:legacy_restart which works fine.

Unicorn isn't working

I'm trying to use this gem to run unicorn in my staging server, but my deploys aren't working with the unicorn command given... and manually I could see that is -E deployment the problem.

If I run manually with -E staging, it's running fine.

I'm using ruby 2.1.2, rails 4.1, capistrano 3.1, on a ubuntu 14.04 server.

my cap command is cap staging deployand I have a proper file (environments/staging.rb) to handle this server.

What I'm doing wrong?
If you guys need some more information, ask me please.

Thanks

Pass in constants before 'execute :bundle, "exec unicorn", ...'

I would like my unicor:start task to execute a command like this:
KEY="xyz" bundle exec unicorn -c ./config/unicorn/staging.rb -E staging -D && tail -f ~/logs/app-stderr.log

Is there a way to add the KEY="xyz" piece (I believe in rails, this is an environment variable)?

About deploying a Dashing with Unicorn

I'm facing this problem when I deploy a dashing project: When run "Cap Env deploy", the dashboard is not able to communicate with the events.
But if I ssh the instance and manually runs the start rake it works:

PATH=/.rbenv/shims:/.rbenv/bin:$PATH RBENV_ROOT=/opt/rbenv RBENV_VERSION=2.1.1 RAILS_ENV=staging RBENV_ROOT=/opt/rbenv RBENV_VERSION=2.1.1 /opt/rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/application/current/config/unicorn/config.rb -E deployment -D

I have tried to modify the task and the rbenv setting but still the problem is there. I have made a post to document the problem because is happening also with Puma.
http://www.joseantoniopio.com/programming/deploying-dashing-with-unicorn-or-puma/

Can someone help me to find the issue?

undefined method `verbosity' for "/usr/bin/env unicorn:restart\n":String

I am getting

undefined method `verbosity' for "/usr/bin/env unicorn:restart\n":String

with

set :application, '...'
set :repo_url, '...'
set :deploy_to, '/var/www/path/'

namespace :deploy do
  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      # Your restart mechanism here, for example:
      # execute :touch, release_path.join('tmp/restart.txt')
      invoke 'unicorn:restart'
    end
  end

  after :restart, :clear_cache do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      # Here we can do anything such as:
      # within release_path do
      #   execute :rake, 'cache:clear'
      # end
    end
  end
  after :finishing, 'deploy:cleanup'
end

Will try to debug later today.

Nothing happens when invoking `unicorn:restart`

I'm currently using the latest version of both unicorn and capistrano, and when unicorn:restart gets invoked, there isn't any output and unicorn isn't started.

I ran cap production unicorn:restart just to be sure, but again, nothing happens.

I have my <current_path>/tmp/pids directory linked, and setup through unicorn to hold its pid file there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.