Created
September 6, 2012 21:56
-
-
Save rogercampos/3660663 to your computer and use it in GitHub Desktop.
Capistrano running clockwork as daemon
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
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
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.