Capistrano running clockwork as daemon
after "deploy:stop", "clockwork:stop" | |
after "deploy:start", "clockwork:start" | |
after "deploy:restart", "clockwork:restart" | |
namespace :clockwork do | |
desc "Stop clockwork" | |
task :stop, :roles => clockwork_roles, :on_error => :continue, :on_no_matching_servers => :continue do | |
run "if [ -d #{current_path} ] && [ -f #{pid_file} ]; then cd #{current_path} && kill -INT `cat #{pid | |
_file}` ; fi" | |
end | |
desc "Start clockwork" | |
task :start, :roles => clockwork_roles, :on_no_matching_servers => :continue do | |
run "daemon --inherit --name=clockwork --env='#{rails_env}' --output=#{log_file} --pidfile=#{pid_file | |
} -D #{current_path} -- bundle exec clockwork config/clockwork.rb" | |
end | |
desc "Restart clockwork" | |
task :restart, :roles => clockwork_roles, :on_no_matching_servers => :continue do | |
stop | |
start | |
end | |
def rails_env | |
fetch(:rails_env, false) ? "RAILS_ENV=#{fetch(:rails_env)}" : '' | |
end | |
def log_file | |
fetch(:clockwork_log_file, "#{current_path}/log/clockwork.log") | |
end | |
def pid_file | |
fetch(:clockwork_pid_file, "#{current_path}/tmp/pids/clockwork.pid") | |
end | |
end |
This comment has been minimized.
This comment has been minimized.
I have a few questions about this, do you think you can help me? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Why not use
daemon
for the stopping and add a status task also?I or
||
the command withtrue
because I don't want cap to fail if the process is not running. Another change I made was I had my log_file useshared_path
instead ofcurrent_path
. Thanks for giving me something to start with. Of course, I had tosudo apt-get install daemon
on my servers first.