Skip to content
Snippets Groups Projects
Commit 800fd182 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Init.d scripts

parent a7e9d6c9
No related branches found
No related tags found
No related merge requests found
#! /bin/bash
# GITLAB CI
# Maintainer: @randx
# App Version: 1.1
### BEGIN INIT INFO
# Provides: gitlab_ci
# Required-Start: $local_fs $remote_fs $network $syslog redis-server
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: GitLab git repository management
# Description: GitLab git repository management
### END INIT INFO
USER="gitlab_ci"
APP_ROOT="/home/$USER/gitlab-ci"
DAEMON_OPTS="-p 3000 -d -e production"
PID_PATH="$APP_ROOT/tmp/pids"
THIN_PID="$PID_PATH/thin.pid"
RESQUE_PID="$PID_PATH/resque_worker.pid"
RESQUE_2_PID="$PID_PATH/resque_schedule.pid"
NAME="thin"
DESC="Gitlab CI service"
check_pid(){
if [ -f $THIN_PID ]; then
PID=`cat $THIN_PID`
STATUS=`ps aux | grep $PID | grep -v grep | wc -l`
else
STATUS=0
PID=0
fi
}
start() {
cd $APP_ROOT
check_pid
if [ "$PID" -ne 0 -a "$STATUS" -ne 0 ]; then
# Program is running, exit with error code 1.
echo "Error! $DESC $NAME is currently running!"
exit 1
else
if [ `whoami` = root ]; then
sudo -u $USER -H bash -l -c "bundle exec thin start $DAEMON_OPTS"
sudo -u $USER -H bash -l -c "nohup bundle exec rake environment resque:work QUEUE=runner,scheduler_task RAILS_ENV=production PIDFILE=tmp/pids/resque_worker.pid > ./log/resque.log &"
sudo -u $USER -H bash -l -c "nohup bundle exec rake environment resque:scheduler RAILS_ENV=production PIDFILE=tmp/pids/resque_schedule.pid > ./log/schedule.log &"
echo "$DESC started"
fi
fi
}
stop() {
cd $APP_ROOT
check_pid
if [ "$PID" -ne 0 -a "$STATUS" -ne 0 ]; then
## Program is running, stop it.
kill -QUIT `cat $THIN_PID`
kill -QUIT `cat $RESQUE_PID`
kill -QUIT `cat $RESQUE_2_PID`
rm "$THIN_PID" >> /dev/null
rm "$RESQUE_PID" >> /dev/null
echo "$DESC stopped"
else
## Program is not running, exit with error.
echo "Error! $DESC not started!"
exit 1
fi
}
restart() {
cd $APP_ROOT
check_pid
if [ "$PID" -ne 0 -a "$STATUS" -ne 0 ]; then
echo -n "Restarting $DESC: "
kill -USR2 `cat $THIN_PID`
kill -QUIT `cat $RESQUE_PID`
kill -QUIT `cat $RESQUE_2_PID`
echo "$NAME."
else
echo "Error, $NAME not running!"
exit 1
fi
}
status() {
cd $APP_ROOT
check_pid
if [ "$PID" -ne 0 -a "$STATUS" -ne 0 ]; then
echo "$DESC with PID $PID is running."
else
echo "$DESC is not running."
exit 1
fi
}
## Check to see if we are running as root first.
## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root"
exit 1
fi
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload|force-reload)
echo -n "Reloading $DESC configuration: "
kill -HUP `cat $PID`
echo "$NAME."
;;
status)
status
;;
*)
echo "Usage: $NAME {start|stop|restart|reload}" >&2
exit 1
;;
esac
exit 0
# GITLAB CI
# Maintainer: @randx
# App Version: 1.1
upstream gitlab_ci {
server 127.0.0.1:3000;
}
server {
listen YOUR_SERVER_IP:80 default_server; # e.g., listen 192.168.1.1:80;
server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com;
root /home/gitlab_ci/gitlab-ci/public;
access_log /var/log/nginx/gitlab_ci_access.log;
error_log /var/log/nginx/gitlab_ci_error.log;
location / {
try_files $uri $uri/index.html $uri.html @gitlab_ci;
}
location @gitlab_ci {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://gitlab_ci;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment