Commit 2c0f4c766458b15771b6a7b64760c9cb37b8ccfe
Exists in
master
and in
4 other branches
Merge branch 'unicorn_rake_tasks' of /home/git/repositories/gitlab/gitlabhq
Showing
4 changed files
with
118 additions
and
27 deletions
Show diff stats
lib/support/init.d/gitlab
... | ... | @@ -22,7 +22,6 @@ RAILS_ENV="production" |
22 | 22 | # /bin/sh variables such as PATH, EDITOR or SHELL. |
23 | 23 | app_root="/home/git/gitlab" |
24 | 24 | app_user="git" |
25 | -unicorn_conf="$app_root/config/unicorn.rb" | |
26 | 25 | pid_path="$app_root/tmp/pids" |
27 | 26 | socket_path="$app_root/tmp/sockets" |
28 | 27 | web_server_pid_path="$pid_path/unicorn.pid" |
... | ... | @@ -129,7 +128,7 @@ start() { |
129 | 128 | # Remove old socket if it exists |
130 | 129 | rm -f "$socket_path"/gitlab.socket 2>/dev/null |
131 | 130 | # Start the webserver |
132 | - bundle exec unicorn_rails -D -c "$unicorn_conf" -E "$RAILS_ENV" | |
131 | + RAILS_ENV=$RAILS_ENV script/web start | |
133 | 132 | fi |
134 | 133 | |
135 | 134 | # If sidekiq is already running, don't start it again. |
... | ... | @@ -137,7 +136,7 @@ start() { |
137 | 136 | echo "The Sidekiq job dispatcher is already running with pid $spid, not restarting" |
138 | 137 | else |
139 | 138 | echo "Starting the GitLab Sidekiq event dispatcher..." |
140 | - RAILS_ENV=$RAILS_ENV bundle exec rake sidekiq:start | |
139 | + RAILS_ENV=$RAILS_ENV script/background_jobs start | |
141 | 140 | # We are sleeping a bit here because sidekiq is slow at writing it's pid |
142 | 141 | sleep 2 |
143 | 142 | fi |
... | ... | @@ -151,7 +150,7 @@ stop() { |
151 | 150 | exit_if_not_running |
152 | 151 | # If the Unicorn web server is running, tell it to stop; |
153 | 152 | if [ "$web_status" = "0" ]; then |
154 | - kill -QUIT "$wpid" | |
153 | + RAILS_ENV=$RAILS_ENV script/web stop | |
155 | 154 | echo "Stopping the GitLab Unicorn web server..." |
156 | 155 | stopping=true |
157 | 156 | else |
... | ... | @@ -160,7 +159,7 @@ stop() { |
160 | 159 | # And do the same thing for the Sidekiq. |
161 | 160 | if [ "$sidekiq_status" = "0" ]; then |
162 | 161 | printf "Stopping Sidekiq job dispatcher." |
163 | - RAILS_ENV=$RAILS_ENV bundle exec rake sidekiq:stop | |
162 | + RAILS_ENV=$RAILS_ENV script/background_jobs stop | |
164 | 163 | stopping=true |
165 | 164 | else |
166 | 165 | echo "The Sidekiq was not running, must have run out of breath." |
... | ... | @@ -215,10 +214,10 @@ reload(){ |
215 | 214 | exit 1 |
216 | 215 | fi |
217 | 216 | printf "Reloading GitLab Unicorn configuration... " |
218 | - kill -USR2 "$wpid" | |
217 | + RAILS_ENV=$RAILS_ENV script/web reload | |
219 | 218 | echo "Done." |
220 | 219 | echo "Restarting GitLab Sidekiq since it isn't capable of reloading its config..." |
221 | - RAILS_ENV=$RAILS_ENV bundle exec rake sidekiq:restart | |
220 | + RAILS_ENV=$RAILS_ENV script/background_jobs restart | |
222 | 221 | # Waiting 2 seconds for sidekiq to write it. |
223 | 222 | sleep 2 |
224 | 223 | status | ... | ... |
lib/tasks/sidekiq.rake
1 | 1 | namespace :sidekiq do |
2 | 2 | desc "GITLAB | Stop sidekiq" |
3 | 3 | task :stop do |
4 | - system "bundle exec sidekiqctl stop #{pidfile}" | |
4 | + system "script/background_jobs stop" | |
5 | 5 | end |
6 | 6 | |
7 | - desc "GITLAB | Start sidekiq" | |
8 | - task :start => :restart | |
7 | + desc "GITLAB | Start sidekiq" do | |
8 | + system "script/background_jobs start" | |
9 | + end | |
9 | 10 | |
10 | - desc 'GitLab | Restart sidekiq' | |
11 | - task :restart do | |
12 | - if File.exist?(pidfile) | |
13 | - puts 'Shutting down existing sidekiq process.' | |
14 | - Rake::Task['sidekiq:stop'].invoke | |
15 | - puts 'Starting new sidekiq process.' | |
16 | - end | |
17 | - 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" | |
11 | + desc 'GitLab | Restart sidekiq' do | |
12 | + system "script/background_jobs restart" | |
18 | 13 | end |
19 | 14 | |
20 | 15 | desc "GITLAB | Start sidekiq with launchd on Mac OS X" |
21 | 16 | task :launchd do |
22 | - 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" | |
23 | - end | |
24 | - | |
25 | - def pidfile | |
26 | - Rails.root.join("tmp", "pids", "sidekiq.pid") | |
27 | - end | |
28 | - | |
29 | - def log_file | |
30 | - Rails.root.join("log", "sidekiq.log") | |
17 | + system "script/background_jobs start_no_deamonize" | |
31 | 18 | end |
32 | 19 | end | ... | ... |
... | ... | @@ -0,0 +1,56 @@ |
1 | +#!/bin/bash | |
2 | + | |
3 | +cd $(dirname $0)/.. | |
4 | +app_root=$(pwd) | |
5 | +sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid" | |
6 | +sidekiq_logfile="$app_root/log/sidekiq.log" | |
7 | +gitlab_user=$(ls -l config.ru | awk '{print $3}') | |
8 | + | |
9 | +function stop | |
10 | +{ | |
11 | + bundle exec sidekiqctl stop $sidekiq_pidfile &>> $sidekiq_logfile | |
12 | +} | |
13 | + | |
14 | +function killall | |
15 | +{ | |
16 | + pkill -u $gitlab_user -f sidekiq | |
17 | +} | |
18 | + | |
19 | +function restart | |
20 | +{ | |
21 | + if [ -f $sidekiq_pidfile ]; then | |
22 | + stop | |
23 | + fi | |
24 | + killall | |
25 | + start_sidekiq -d -L $sidekiq_logfile | |
26 | +} | |
27 | + | |
28 | +function start_no_deamonize | |
29 | +{ | |
30 | + start_sidekiq | |
31 | +} | |
32 | + | |
33 | +function start_sidekiq | |
34 | +{ | |
35 | + bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e $RAILS_ENV -P $sidekiq_pidfile $@ &>> $sidekiq_logfile | |
36 | +} | |
37 | + | |
38 | +case "$1" in | |
39 | + stop) | |
40 | + stop | |
41 | + ;; | |
42 | + start) | |
43 | + restart | |
44 | + ;; | |
45 | + start_no_deamonize) | |
46 | + start_no_deamonize | |
47 | + ;; | |
48 | + restart) | |
49 | + restart | |
50 | + ;; | |
51 | + killall) | |
52 | + killall | |
53 | + ;; | |
54 | + *) | |
55 | + echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall}" | |
56 | +esac | ... | ... |
... | ... | @@ -0,0 +1,49 @@ |
1 | +#!/bin/bash | |
2 | + | |
3 | +cd $(dirname $0)/.. | |
4 | +app_root=$(pwd) | |
5 | + | |
6 | +unicorn_pidfile="$app_root/tmp/pids/unicorn.pid" | |
7 | +unicorn_config="$app_root/config/unicorn.rb" | |
8 | + | |
9 | +function get_unicorn_pid | |
10 | +{ | |
11 | + local pid=$(cat $unicorn_pidfile) | |
12 | + if [ -z $pid ] ; then | |
13 | + echo "Could not find a PID in $unicorn_pidfile" | |
14 | + exit 1 | |
15 | + fi | |
16 | + unicorn_pid=$pid | |
17 | +} | |
18 | + | |
19 | +function start | |
20 | +{ | |
21 | + bundle exec unicorn_rails -D -c $unicorn_config -E $RAILS_ENV | |
22 | +} | |
23 | + | |
24 | +function stop | |
25 | +{ | |
26 | + get_unicorn_pid | |
27 | + kill -QUIT $unicorn_pid | |
28 | +} | |
29 | + | |
30 | +function reload | |
31 | +{ | |
32 | + get_unicorn_pid | |
33 | + kill -USR2 $unicorn_pid | |
34 | +} | |
35 | + | |
36 | +case "$1" in | |
37 | + start) | |
38 | + start | |
39 | + ;; | |
40 | + stop) | |
41 | + stop | |
42 | + ;; | |
43 | + reload) | |
44 | + reload | |
45 | + ;; | |
46 | + *) | |
47 | + echo "Usage: RAILS_ENV=your_env $0 {start|stop|reload}" | |
48 | + ;; | |
49 | +esac | ... | ... |