You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							152 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							152 lines
						
					
					
						
							3.4 KiB
						
					
					
				| #! /bin/sh
 | |
| ### BEGIN INIT INFO
 | |
| # Provides:          gitautodeploy
 | |
| # Required-Start:    $remote_fs $syslog $network
 | |
| # Required-Stop:     $remote_fs $syslog $network
 | |
| # Default-Start:     2 3 4 5
 | |
| # Default-Stop:      0 1 6
 | |
| # Short-Description: Script to start Autodeploy Git
 | |
| # Description:       Autodeploy script for Gitlab
 | |
| ### END INIT INFO
 | |
| 
 | |
| # Author: JA Nache <nache.nache@gmail.com>
 | |
| 
 | |
| NAME="git-auto-deploy"
 | |
| PATH=/sbin:/usr/sbin:/bin:/usr/bin
 | |
| DESC="GitAutodeploy"
 | |
| DAEMON="/usr/bin/env python -m /opt/Git-Auto-Deploy/gitautodeploy"
 | |
| DAEMON_UID=root
 | |
| DAEMON_GID=root
 | |
| RUNDIR=/var/run/$NAME
 | |
| PIDFILE=/var/run/$NAME.pid
 | |
| LOGFILE=/var/log/$NAME.log
 | |
| PWD=/opt/Git-Auto-Deploy/
 | |
| OPTIONS="--daemon-mode --quiet --pid-file $PIDFILE --log-file $LOGFILE"
 | |
| USER=root
 | |
| SCRIPTNAME=/etc/init.d/$NAME
 | |
| 
 | |
| # Exit if the package is not installed
 | |
| #[ -x $DAEMON ] || echo "$NAME is not installed" && exit 0
 | |
| 
 | |
| # Load the VERBOSE setting and other rcS variables
 | |
| . /lib/init/vars.sh
 | |
| 
 | |
| # Define LSB log_* functions.
 | |
| . /lib/lsb/init-functions
 | |
| 
 | |
| # Read configuration variable file if it is present
 | |
| [ -r /etc/default/$NAME ] && . /etc/default/$NAME || ENABLE_GITAUTODEPLOY=yes
 | |
| 
 | |
| #
 | |
| # Check whether daemon starting is enabled
 | |
| #
 | |
| check_start_daemon() {
 | |
| 	if [ ! "$ENABLE_GITAUTODEPLOY" = "yes" ]; then
 | |
| 		[ "$VERBOSE" != no ] && \
 | |
| 			log_warning_msg "Not starting gitautodeploy, disabled via /etc/default/gitautodeploy"
 | |
| 		return 1
 | |
| 	else
 | |
| 		return 0
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| #
 | |
| # Function that starts the daemon/service
 | |
| #
 | |
| do_start()
 | |
| {
 | |
| 	# Return
 | |
| 	#   0 if daemon has been started
 | |
| 	#   1 if daemon was already running
 | |
| 	#   2 if daemon could not be started
 | |
| 
 | |
| 	if [ ! -d $RUNDIR ]; then
 | |
| 		mkdir $RUNDIR
 | |
| 	fi
 | |
| 	
 | |
| 	if ! dpkg-statoverride --list $dir >/dev/null 2>&1; then
 | |
| 		chown $DAEMON_UID:$DAEMON_GID $RUNDIR
 | |
| 		chmod g-w,o-rwx $RUNDIR
 | |
| 	fi
 | |
| 
 | |
| 	start-stop-daemon --start --quiet --chdir $PWD --pidfile $PIDFILE --startas $DAEMON \
 | |
| 		--name $NAME --test > /dev/null \
 | |
| 		|| return 1
 | |
| 	start-stop-daemon --start --quiet --chdir $PWD --pidfile $PIDFILE --startas $DAEMON \
 | |
| 		--name $NAME --umask 0027 --chuid $DAEMON_UID:$DAEMON_GID -- $OPTIONS \
 | |
| 		|| return 2
 | |
| }
 | |
| 
 | |
| #
 | |
| # Function that stops the daemon/service
 | |
| #
 | |
| do_stop()
 | |
| {
 | |
| 	# Return
 | |
| 	#   0 if daemon has been stopped
 | |
| 	#   1 if daemon was already stopped
 | |
| 	#   2 if daemon could not be stopped
 | |
| 	#   other if a failure occurred
 | |
| 	start-stop-daemon --stop --signal 6 --retry 30 --pidfile $PIDFILE 
 | |
| }
 | |
| 
 | |
| #
 | |
| # Function that reload the daemon/service
 | |
| #
 | |
| do_reload()
 | |
| {
 | |
| 	start-stop-daemon --stop -s 1 --pidfile $PIDFILE
 | |
| }
 | |
| 
 | |
| case "$1" in
 | |
|   start)
 | |
| 	check_start_daemon || exit 0
 | |
| 	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
 | |
| 	do_start
 | |
| 	case "$?" in
 | |
| 		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 | |
| 		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 | |
| 	esac
 | |
|   ;;
 | |
|   stop)
 | |
| 	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
 | |
| 	do_stop
 | |
| 	case "$?" in
 | |
| 		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 | |
| 		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 | |
| 	esac
 | |
| 	;;
 | |
|   status)
 | |
| 	status_of_proc -p $PIDFILE "python" "$DAEMON" && exit 0 || exit $?
 | |
| 
 | |
| 	;;
 | |
|   reload)
 | |
| 	do_reload
 | |
| 	;;
 | |
|   restart|force-reload)
 | |
| 	log_daemon_msg "Restarting $DESC" "$NAME"
 | |
| 	do_stop
 | |
| 	case "$?" in
 | |
| 	  0|1)
 | |
| 		do_start
 | |
| 		case "$?" in
 | |
| 			0) log_end_msg 0 ;;
 | |
| 			1) log_end_msg 1 ;; # Old process is still running
 | |
| 			*) log_end_msg 1 ;; # Failed to start
 | |
| 		esac
 | |
| 		;;
 | |
| 	  *)
 | |
| 		# Failed to stop
 | |
| 		log_end_msg 1
 | |
| 		;;
 | |
| 	esac
 | |
| 	;;
 | |
|   *)
 | |
| 	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
 | |
| 	exit 3
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| :
 | |
| 
 |