diff --git a/lib/tasks/sidekiq.rake b/lib/tasks/sidekiq.rake index d0e9dfe46a..ba79b6e035 100644 --- a/lib/tasks/sidekiq.rake +++ b/lib/tasks/sidekiq.rake @@ -5,16 +5,28 @@ namespace :sidekiq do end desc "GITLAB | Start sidekiq" - task :start do - system "nohup bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e #{Rails.env} -P #{pidfile} >> #{Rails.root.join("log", "sidekiq.log")} 2>&1 &" + task :start => :restart + + desc 'GitLab | Restart sidekiq' + task :restart do + if File.exist?(pidfile) + puts 'Shutting down existing sidekiq process.' + Rake::Task['sidekiq:stop'].invoke + puts 'Starting new sidekiq process.' + end + system "bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e #{Rails.env} -P #{pidfile} -d -L #{log_file} >> #{log_file} 2>&1" end desc "GITLAB | Start sidekiq with launchd on Mac OS X" task :launchd do - system "bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e #{Rails.env} -P #{pidfile} >> #{Rails.root.join("log", "sidekiq.log")} 2>&1" + system "bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e #{Rails.env} -P #{pidfile} >> #{log_file} 2>&1" end def pidfile Rails.root.join("tmp", "pids", "sidekiq.pid") end + + def log_file + Rails.root.join("log", "sidekiq.log") + end end