Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
f3b57ce6
Commit
f3b57ce6
authored
Aug 19, 2015
by
Douwe Maan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update init scripts.
parent
089aa2de
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
137 additions
and
22 deletions
+137
-22
Procfile
Procfile
+1
-1
bin/background_jobs
bin/background_jobs
+1
-1
bin/mail_room
bin/mail_room
+51
-0
lib/support/init.d/gitlab
lib/support/init.d/gitlab
+75
-20
lib/support/init.d/gitlab.default.example
lib/support/init.d/gitlab.default.example
+9
-0
No files found.
Procfile
View file @
f3b57ce6
web: bundle exec unicorn_rails -p ${PORT:="3000"} -E ${RAILS_ENV:="development"} -c ${UNICORN_CONFIG:="config/unicorn.rb"}
web: bundle exec unicorn_rails -p ${PORT:="3000"} -E ${RAILS_ENV:="development"} -c ${UNICORN_CONFIG:="config/unicorn.rb"}
worker: bundle exec sidekiq -q post_receive -q mailer -q archive_repo -q system_hook -q project_web_hook -q gitlab_shell -q incoming_email -q common -q default
worker: bundle exec sidekiq -q post_receive -q mailer -q archive_repo -q system_hook -q project_web_hook -q gitlab_shell -q incoming_email -q common -q default
mail_room: bundle exec mail_room -q -c config/mail_room.yml
#
mail_room: bundle exec mail_room -q -c config/mail_room.yml
bin/background_jobs
View file @
f3b57ce6
...
@@ -37,7 +37,7 @@ start_no_deamonize()
...
@@ -37,7 +37,7 @@ start_no_deamonize()
start_sidekiq
()
start_sidekiq
()
{
{
bundle
exec
sidekiq
-q
post_receive
-q
mailer
-q
archive_repo
-q
system_hook
-q
project_web_hook
-q
gitlab_shell
-q
common
-q
default
-e
$RAILS_ENV
-P
$sidekiq_pidfile
$@
>>
$sidekiq_logfile
2>&1
bundle
exec
sidekiq
-q
post_receive
-q
mailer
-q
archive_repo
-q
system_hook
-q
project_web_hook
-q
gitlab_shell
-q
incoming_email
-q
common
-q
default
-e
$RAILS_ENV
-P
$sidekiq_pidfile
$@
>>
$sidekiq_logfile
2>&1
}
}
load_ok
()
load_ok
()
...
...
bin/mail_room
0 → 100755
View file @
f3b57ce6
#!/bin/sh
cd
$(
dirname
$0
)
/..
app_root
=
$(
pwd
)
mail_room_pidfile
=
"
$app_root
/tmp/pids/mail_room.pid"
mail_room_config
=
"
$app_root
/config/mail_room.yml"
get_mail_room_pid
()
{
local
pid
=
$(
cat
$mail_room_pidfile
)
if
[
-z
"
$pid
"
]
;
then
echo
"Could not find a PID in
$mail_room_pidfile
"
exit
1
fi
mail_room_pid
=
$pid
}
start
()
{
bundle
exec
mail_room
-q
-c
$mail_room_config
PID
=
$!
echo
$PID
>
$mail_room_pidfile
}
stop
()
{
get_mail_room_pid
kill
-QUIT
$mail_room_pid
}
reload
()
{
get_mail_room_pid
kill
-USR2
$mail_room_pid
}
case
"
$1
"
in
start
)
start
;;
stop
)
stop
;;
reload
)
reload
;;
*
)
echo
"Usage:
$0
{start|stop|reload}"
;;
esac
lib/support/init.d/gitlab
View file @
f3b57ce6
...
@@ -35,6 +35,8 @@ pid_path="$app_root/tmp/pids"
...
@@ -35,6 +35,8 @@ pid_path="$app_root/tmp/pids"
socket_path
=
"
$app_root
/tmp/sockets"
socket_path
=
"
$app_root
/tmp/sockets"
web_server_pid_path
=
"
$pid_path
/unicorn.pid"
web_server_pid_path
=
"
$pid_path
/unicorn.pid"
sidekiq_pid_path
=
"
$pid_path
/sidekiq.pid"
sidekiq_pid_path
=
"
$pid_path
/sidekiq.pid"
mail_room_enabled
=
false
mail_room_pid_path
=
"
$pid_path
/mail_room.pid"
shell_path
=
"/bin/bash"
shell_path
=
"/bin/bash"
# Read configuration variable file if it is present
# Read configuration variable file if it is present
...
@@ -70,13 +72,20 @@ check_pids(){
...
@@ -70,13 +72,20 @@ check_pids(){
else
else
spid
=
0
spid
=
0
fi
fi
if
[
"
$mail_room_enabled
"
=
true
]
;
then
if
[
-f
"
$mail_room_pid_path
"
]
;
then
mpid
=
$(
cat
"
$mail_room_pid_path
"
)
else
mpid
=
0
fi
fi
}
}
## Called when we have started the two processes and are waiting for their pid files.
## Called when we have started the two processes and are waiting for their pid files.
wait_for_pids
(){
wait_for_pids
(){
# We are sleeping a bit here mostly because sidekiq is slow at writing it's pid
# We are sleeping a bit here mostly because sidekiq is slow at writing it's pid
i
=
0
;
i
=
0
;
while
[
!
-f
$web_server_pid_path
-o
!
-f
$sidekiq_pid_path
]
;
do
while
[
!
-f
$web_server_pid_path
-o
!
-f
$sidekiq_pid_path
-o
[
"
$mail_room_enabled
"
=
true
&&
!
-f
$mail_room_pid_path
]
]
;
do
sleep
0.1
;
sleep
0.1
;
i
=
$((
i+1
))
i
=
$((
i+1
))
if
[
$((
i%10
))
=
0
]
;
then
if
[
$((
i%10
))
=
0
]
;
then
...
@@ -111,7 +120,13 @@ check_status(){
...
@@ -111,7 +120,13 @@ check_status(){
else
else
sidekiq_status
=
"-1"
sidekiq_status
=
"-1"
fi
fi
if
[
$web_status
=
0
-a
$sidekiq_status
=
0
]
;
then
if
[
"
$mail_room_enabled
"
=
true
&&
$mpid
-ne
0
]
;
then
kill
-0
"
$mpid
"
2>/dev/null
mail_room_status
=
"
$?
"
else
mail_room_status
=
"-1"
fi
if
[
$web_status
=
0
-a
$sidekiq_status
=
0
-a
[
"
$mail_room_enabled
"
!=
true
||
$mail_room_status
=
0
]
]
;
then
gitlab_status
=
0
gitlab_status
=
0
else
else
# http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
# http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
...
@@ -139,12 +154,19 @@ check_stale_pids(){
...
@@ -139,12 +154,19 @@ check_stale_pids(){
exit
1
exit
1
fi
fi
fi
fi
if
[
"
$mail_room_enabled
"
=
true
&&
"
$mpid
"
!=
"0"
-a
"
$mail_room_status
"
!=
"0"
]
;
then
echo
"Removing stale MailRoom job dispatcher pid. This is most likely caused by MailRoom crashing the last time it ran."
if
!
rm
"
$mail_room_pid_path
"
;
then
echo
"Unable to remove stale pid, exiting"
exit
1
fi
fi
}
}
## If no parts of the service is running, bail out.
## If no parts of the service is running, bail out.
exit_if_not_running
(){
exit_if_not_running
(){
check_stale_pids
check_stale_pids
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
]
;
then
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
-a
[
"
$mail_room_enabled
"
=
true
&&
"
$mail_room_status
"
!=
"0"
]
]
;
then
echo
"GitLab is not running."
echo
"GitLab is not running."
exit
exit
fi
fi
...
@@ -154,13 +176,15 @@ exit_if_not_running(){
...
@@ -154,13 +176,15 @@ exit_if_not_running(){
start_gitlab
()
{
start_gitlab
()
{
check_stale_pids
check_stale_pids
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
]
;
then
if
[
"
$web_status
"
!=
"0"
]
;
then
echo
-n
"Starting both the GitLab Unicorn and Sidekiq"
elif
[
"
$web_status
"
!=
"0"
]
;
then
echo
-n
"Starting GitLab Unicorn"
echo
-n
"Starting GitLab Unicorn"
elif
[
"
$sidekiq_status
"
!=
"0"
]
;
then
fi
if
[
"
$sidekiq_status
"
!=
"0"
]
;
then
echo
-n
"Starting GitLab Sidekiq"
echo
-n
"Starting GitLab Sidekiq"
fi
fi
if
[
"
$mail_room_enabled
"
=
true
&&
"
$mail_room_status
"
!=
"0"
]
;
then
echo
-n
"Starting GitLab MailRoom"
fi
# Then check if the service is running. If it is: don't start again.
# Then check if the service is running. If it is: don't start again.
if
[
"
$web_status
"
=
"0"
]
;
then
if
[
"
$web_status
"
=
"0"
]
;
then
...
@@ -179,22 +203,33 @@ start_gitlab() {
...
@@ -179,22 +203,33 @@ start_gitlab() {
RAILS_ENV
=
$RAILS_ENV
bin/background_jobs start &
RAILS_ENV
=
$RAILS_ENV
bin/background_jobs start &
fi
fi
if
[
"
$mail_room_enabled
"
=
true
]
;
then
# If MailRoom is already running, don't start it again.
if
[
"
$mail_room_status
"
=
"0"
]
;
then
echo
"The MailRoom email processor is already running with pid
$spid
, not restarting"
else
RAILS_ENV
=
$RAILS_ENV
bin/mail_room start &
fi
fi
# Wait for the pids to be planted
# Wait for the pids to be planted
wait_for_pids
wait_for_pids
# Finally check the status to tell wether or not GitLab is running
# Finally check the status to tell wether or not GitLab is running
print_status
print_status
}
}
## Asks
the Unicorn and the Sidekiq
if they would be so kind as to stop, if not kills them.
## Asks
Unicorn, Sidekiq and MailRoom
if they would be so kind as to stop, if not kills them.
stop_gitlab
()
{
stop_gitlab
()
{
exit_if_not_running
exit_if_not_running
if
[
"
$web_status
"
=
"0"
-a
"
$sidekiq_status
"
=
"0"
]
;
then
if
[
"
$web_status
"
=
"0"
]
;
then
echo
-n
"Shutting down both Unicorn and Sidekiq"
echo
-n
"Shutting down GitLab Unicorn"
elif
[
"
$web_status
"
=
"0"
]
;
then
fi
echo
-n
"Shutting down Unicorn"
if
[
"
$sidekiq_status
"
=
"0"
]
;
then
elif
[
"
$sidekiq_status
"
=
"0"
]
;
then
echo
-n
"Shutting down GitLab Sidekiq"
echo
-n
"Shutting down Sidekiq"
fi
if
[
"
$mail_room_enabled
"
=
true
&&
"
$mail_room_status
"
=
"0"
]
;
then
echo
-n
"Shutting down GitLab MailRoom"
fi
fi
# If the Unicorn web server is running, tell it to stop;
# If the Unicorn web server is running, tell it to stop;
...
@@ -205,13 +240,17 @@ stop_gitlab() {
...
@@ -205,13 +240,17 @@ stop_gitlab() {
if
[
"
$sidekiq_status
"
=
"0"
]
;
then
if
[
"
$sidekiq_status
"
=
"0"
]
;
then
RAILS_ENV
=
$RAILS_ENV
bin/background_jobs stop
RAILS_ENV
=
$RAILS_ENV
bin/background_jobs stop
fi
fi
# And do the same thing for the MailRoom.
if
[
"
$mail_room_enabled
"
=
true
&&
"
$mail_room_status
"
=
"0"
]
;
then
RAILS_ENV
=
$RAILS_ENV
bin/mail_room stop
fi
# If something needs to be stopped, lets wait for it to stop. Never use SIGKILL in a script.
# If something needs to be stopped, lets wait for it to stop. Never use SIGKILL in a script.
while
[
"
$web_status
"
=
"0"
-o
"
$sidekiq_status
"
=
"0"
]
;
do
while
[
"
$web_status
"
=
"0"
-o
"
$sidekiq_status
"
=
"0"
-o
[
"
$mail_room_enabled
"
=
true
&&
"
$mail_room_status
"
=
"0"
]
]
;
do
sleep
1
sleep
1
check_status
check_status
printf
"."
printf
"."
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
]
;
then
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
-a
[
"
$mail_room_enabled
"
!=
true
||
"
$mail_room_status
"
!=
"0"
]
]
;
then
printf
"
\n
"
printf
"
\n
"
break
break
fi
fi
...
@@ -220,7 +259,10 @@ stop_gitlab() {
...
@@ -220,7 +259,10 @@ stop_gitlab() {
sleep
1
sleep
1
# Cleaning up unused pids
# Cleaning up unused pids
rm
"
$web_server_pid_path
"
2>/dev/null
rm
"
$web_server_pid_path
"
2>/dev/null
# rm "$sidekiq_pid_path" # Sidekiq seems to be cleaning up it's own pid.
# rm "$sidekiq_pid_path" 2>/dev/null # Sidekiq seems to be cleaning up it's own pid.
if
[
"
$mail_room_enabled
"
=
true
]
;
then
rm
"
$mail_room_pid_path
"
2>/dev/null
fi
print_status
print_status
}
}
...
@@ -228,7 +270,7 @@ stop_gitlab() {
...
@@ -228,7 +270,7 @@ stop_gitlab() {
## Prints the status of GitLab and it's components.
## Prints the status of GitLab and it's components.
print_status
()
{
print_status
()
{
check_status
check_status
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
]
;
then
if
[
"
$web_status
"
!=
"0"
-a
"
$sidekiq_status
"
!=
"0"
-a
[
"
$mail_room_enabled
"
!=
true
||
"
$mail_room_status
"
!=
"0"
]
]
;
then
echo
"GitLab is not running."
echo
"GitLab is not running."
return
return
fi
fi
...
@@ -242,7 +284,14 @@ print_status() {
...
@@ -242,7 +284,14 @@ print_status() {
else
else
printf
"The GitLab Sidekiq job dispatcher is
\0
33[31mnot running
\0
33[0m.
\n
"
printf
"The GitLab Sidekiq job dispatcher is
\0
33[31mnot running
\0
33[0m.
\n
"
fi
fi
if
[
"
$web_status
"
=
"0"
-a
"
$sidekiq_status
"
=
"0"
]
;
then
if
[
"
$mail_room_enabled
"
=
true
]
;
then
if
[
"
$mail_room_status
"
=
"0"
]
;
then
echo
"The GitLab MailRoom email processor with pid
$spid
is running."
else
printf
"The GitLab MailRoom email processor is
\0
33[31mnot running
\0
33[0m.
\n
"
fi
end
if
[
"
$web_status
"
=
"0"
-a
"
$sidekiq_status
"
=
"0"
-a
[
"
$mail_room_enabled
"
!=
true
||
"
$mail_room_status
"
=
"0"
]
]
;
then
printf
"GitLab and all its components are
\0
33[32mup and running
\0
33[0m.
\n
"
printf
"GitLab and all its components are
\0
33[32mup and running
\0
33[0m.
\n
"
fi
fi
}
}
...
@@ -257,9 +306,15 @@ reload_gitlab(){
...
@@ -257,9 +306,15 @@ reload_gitlab(){
printf
"Reloading GitLab Unicorn configuration... "
printf
"Reloading GitLab Unicorn configuration... "
RAILS_ENV
=
$RAILS_ENV
bin/web reload
RAILS_ENV
=
$RAILS_ENV
bin/web reload
echo
"Done."
echo
"Done."
echo
"Restarting GitLab Sidekiq since it isn't capable of reloading its config..."
echo
"Restarting GitLab Sidekiq since it isn't capable of reloading its config..."
RAILS_ENV
=
$RAILS_ENV
bin/background_jobs restart
RAILS_ENV
=
$RAILS_ENV
bin/background_jobs restart
if
[
"
$mail_room_enabled
"
!=
true
]
;
then
echo
"Restarting GitLab MailRoom since it isn't capable of reloading its config..."
RAILS_ENV
=
$RAILS_ENV
bin/mail_room restart
fi
wait_for_pids
wait_for_pids
print_status
print_status
}
}
...
@@ -267,7 +322,7 @@ reload_gitlab(){
...
@@ -267,7 +322,7 @@ reload_gitlab(){
## Restarts Sidekiq and Unicorn.
## Restarts Sidekiq and Unicorn.
restart_gitlab
(){
restart_gitlab
(){
check_status
check_status
if
[
"
$web_status
"
=
"0"
-o
"
$sidekiq_status
"
=
"0"
]
;
then
if
[
"
$web_status
"
=
"0"
-o
"
$sidekiq_status
"
=
"0"
-o
[
"
$mail_room_enabled
"
=
true
&&
"
$mail_room_status
"
=
"0"
]
]
;
then
stop_gitlab
stop_gitlab
fi
fi
start_gitlab
start_gitlab
...
...
lib/support/init.d/gitlab.default.example
View file @
f3b57ce6
...
@@ -30,6 +30,15 @@ web_server_pid_path="$pid_path/unicorn.pid"
...
@@ -30,6 +30,15 @@ web_server_pid_path="$pid_path/unicorn.pid"
# The default is "$pid_path/sidekiq.pid"
# The default is "$pid_path/sidekiq.pid"
sidekiq_pid_path="$pid_path/sidekiq.pid"
sidekiq_pid_path="$pid_path/sidekiq.pid"
# mail_room_enabled specifies whether mail_room, which is used to process incoming email, is enabled.
# This is required for the Reply by email feature.
# The default is "false"
mail_room_enabled=false
# mail_room_pid_path defines the path in which to create the pid file for mail_room
# The default is "$pid_path/mail_room.pid"
mail_room_pid_path="$pid_path/mail_room.pid"
# shell_path defines the path of shell for "$app_user" in case you are using
# shell_path defines the path of shell for "$app_user" in case you are using
# shell other than "bash"
# shell other than "bash"
# The default is "/bin/bash"
# The default is "/bin/bash"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment