Files
gitlab-recipes/init/sysvinit/centos/gitlab-centos
2013-07-31 14:59:21 +03:00

118 lines
2.1 KiB
Bash

#!/bin/bash
#
# GitLab
# Maintainer: @elvanja, @troyanov, @eiyaya, @foyo23, @nielsbasjes
# App Version: 5.1.0
# chkconfig: 2345 82 55
# processname: puma
# processname: sidekiq
# description: Runs puma and sidekiq for nginx integration.
# Related (kudos @4sak3n0ne):
# https://github.com/gitlabhq/gitlabhq/issues/1049#issuecomment-8386882
# https://gist.github.com/3062860
# Include RedHat function library
. /etc/rc.d/init.d/functions
# The name of the service
NAME=git
# The username and path to the gitlab source
USER=git
APP_PATH=/home/$USER/gitlab
# The PID and LOCK files used by puma and sidekiq
UPID=$APP_PATH/tmp/pids/puma.pid
ULOCK=/var/lock/subsys/puma
SPID=$APP_PATH/tmp/pids/sidekiq.pid
SLOCK=/var/lock/subsys/sidekiq
# The options to use when running puma
OPTS="-C $APP_PATH/config/puma.rb -e production"
# Ruby related path update
RUBY_PATH_PATCH="PATH=$PATH:/usr/local/bin:/usr/local/lib:/home/git/bin && export PATH && "
start() {
cd $APP_PATH
# Start puma
echo -n $"Starting puma: "
daemon --pidfile=$UPID --user=$USER "$RUBY_PATH_PATCH bundle exec puma $OPTS"
puma=$?
[ $puma -eq 0 ] && touch $ULOCK
echo
# Start sidekiq
echo -n $"Starting sidekiq: "
daemon --pidfile=$SPID --user=$USER "$RUBY_PATH_PATCH RAILS_ENV=production bundle exec rake sidekiq:start"
sidekiq=$?
[ $sidekiq -eq 0 ] && touch $SLOCK
echo
retval=$puma || $sidekiq
return $retval
}
stop() {
cd $APP_PATH
# Stop puma
echo -n $"Stopping puma: "
killproc -p $UPID
puma=$?
[ $puma -eq 0 ] && rm -f $ULOCK
echo
# Stop sidekiq
echo -n $"Stopping sidekiq: "
killproc -p $SPID
sidekiq=$?
[ $sidekiq -eq 0 ] && rm -f $SLOCK
echo
retval=$puma || $sidekiq
return $retval
}
restart() {
stop
start
}
get_status() {
status -p $UPID puma
status -p $SPID sidekiq
}
query_status() {
get_status >/dev/null 2>&1
}
case "$1" in
start)
query_status && exit 0
start
;;
stop)
query_status || exit 0
stop
;;
restart)
restart
;;
status)
get_status
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0