Sinusbot Start on Boot Help Please

General support questions
Post Reply
MongerVog
Posts: 2
Joined: 2017/05/19 19:58:05

Sinusbot Start on Boot Help Please

Post by MongerVog » 2017/05/19 20:09:35

I have my server setup, I have my sinusbot running perfectly, but I have to manually strart the bot appon a reboot.
I was hosting my everythings on an ubuntu server but I wanted CWP and so I had to switch to Centos& and well I am loving it.
But I need some assistance.

Ive already created a user for the script and thats sinusbot, This is a copy of my startscript from my ubuntu server, will it work on my centos7 server and were do I put it because on ubuntu it was in /etc/init.d
But Im aware that on centos7 it goes somewere else, I just do not know were.

So questions are will the script below work and were do it put it if it will work?
I start the script the same on my centos7 as I did on my ubuntu vps.

script :

Code: Select all

#! /bin/bash
### BEGIN INIT INFO
# Provides: ts3bot
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Sinusbot
### END INIT INFO

##################################################################################
# #
# Usage: ./launch.sh {start|stop|status|restart|console|update|backup} #
# - start: start the bot #
# - stop: stop the bot #
# - status: display the status of the bot (down or up) #
# - restart: restart the bot #
# - console: display the bot console #
# - update: runs the bot updater (with start & stop)
# - backup: archives your bot root directory
# To exit the console without stopping the server, press CTRL + A then D. #
# #
##################################################################################

SCREEN_NAME="musicbot"
USER="sinusbot"
DIR_ROOT="/home/sinusbot/bot1"
DIR_BACKUP=""
BOT_RUNCMD="./sinusbot"
BOT_UPDATE_ARG=" -update"
SCREEN_IGNORE_TTY="N" # Y = Ignore the tty, you can access the bot screen as root (i not recommend it) root should be disabled :) | N = disabled

# No edits necessary beyond this line
PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ ! -x `which screen` ]; then echo "ERROR: You need screen for this script (try apt-get install screen)"; exit 1; fi
if [ ! -x `which tar` ]; then echo "WARNING: You need tar for the Backup Function (try apt-get install tar)";  fi

function start {
	if [ ! -d $DIR_ROOT ]; then echo "ERROR: $DIR_ROOT is not a directory"; exit 1; fi
	if status; then echo "$SCREEN_NAME is already running"; exit 1; fi

	# Start bot
	if [ `whoami` = root ]
	then
		su - $USER -c "cd $DIR_ROOT ; screen -AmdS $SCREEN_NAME $BOT_RUNCMD"
	else
		cd $DIR_ROOT
		screen -AmdS $SCREEN_NAME $BOT_RUNCMD
	fi
}

function backup {

	DATE=$(date +%Y-%m-%d)
	
	if [ `whoami` = root ]
	then
		su - $USER -c "cd $DIR_ROOT ; tar -cjpf $DIR_BACKUP/sinusbot-$DATE.tar.bz2 $DIR_ROOT"
	else
		cd $DIR_ROOT
		tar -cjpf $DIR_BACKUP/sinusbot-$DATE.tar.bz2 $DIR_ROOT
	fi
}
function update {
	if [ `whoami` = root ]
	then
		su - $USER -c "cd $DIR_ROOT ; $BOT_RUNCMD$BOT_UPDATE_ARG"
	else
		cd $DIR_ROOT
		$BOT_RUNCMD$BOT_UPDATE_ARG
	fi
}

function stop {
	if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

	if [ `whoami` = root ]
	then
		su - $USER -c "screen -S $SCREEN_NAME -X stuff '\003'"
	else
		screen -S $SCREEN_NAME -X stuff '\003'
	fi
}

function status {
	if [ `whoami` = root ]
	then
		su - $USER -c "screen -ls" | grep [.]$SCREEN_NAME[[:space:]] > /dev/null
	else
		screen -ls | grep [.]$SCREEN_NAME[[:space:]] > /dev/null
	fi
}

function console {
	if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

	if [ `whoami` = root ]
	then
		
		if [ $SCREEN_IGNORE_TTY == 'Y' ]
		then 
		su - $USER -c "script -q -c 'screen -x $SCREEN_NAME' /dev/null"
		else 
		su - $USER -c "screen -x $SCREEN_NAME"
		fi
	else
		screen -x $SCREEN_NAME
	fi
}

function usage {
	echo "Usage: $0 {start|stop|status|restart|console}"
	echo "On console, press CTRL+A then D to stop the screen without stopping the server."
}

case "$1" in

start)
    echo "Using following data:"
	echo "USER: $USER"
	echo "DIR ROOT: $DIR_ROOT"
	echo "BOT RUN CMD: $BOT_RUNCMD"
	echo ""
	sleep 2
	echo "Starting $SCREEN_NAME..."
	start
	sleep 2
	echo "$SCREEN_NAME started successfully"
;;

stop)
	echo "Stopping $SCREEN_NAME..."
	stop
	sleep 2
	echo "$SCREEN_NAME stopped successfully"
;;

restart)
	echo "Restarting $SCREEN_NAME..."
	status && stop
	sleep 5
	start
	sleep 2
	echo "$SCREEN_NAME restarted successfully"
;;

status)
	if status
	then echo "$SCREEN_NAME is UP"
	else echo "$SCREEN_NAME is DOWN"
	fi
;;

console)
	echo "Open console on $SCREEN_NAME..."
	console
;;

update)
	if status
	then stop && sleep 5 && update
	else update 
	fi
	
;;

backup)

	if [ -d "$DIR_BACKUP" ]
	then 
			if status
			then stop && sleep 5 && backup
			else backup
			fi
	else echo "BACKUP DIRECTORY NOT EXISTS. EXIT!"; exit 1;
	fi
	
;;

*)
	usage
	exit 1
;;

esac

exit 0

Post Reply