• If you need help or want to discuss things, you now can also join us on our Discord Server!
  • A first preview of the unlimited version of SinusBot can be found in the Upcoming Changes thread. A version for Windows will follow, but we don't have a release date, yet.

Startscript direkt mitliefern

Status
Not open for further replies.

Patschi

Head of troll department / Xuxe dominator
Tier III
is awesome!
V.I.P.
is uber awesome!
Insider
Dachte ich mir sogar schon fast - merkt man etwas, wenn man deine Seiten so etwas flott durchschaut ;) Hätte ja sein können, dass du's unabsichtlich vergessen hast - ist mir selbst auch schon öfters passiert. Deshalb das "Doof gefragt" :)

Aha, ein Proxmox-Fan! Hab ich selbst auch schon seit Jahren im Einsatz, auch wenn ich nun so langsam Alles auf VMware ESXi migriere :)
 

Raphraph

Donor
is awesome!
Contributor
Insider
:) na dann... jo, hätte sein können :) Aber da es nicht ich bin, der die Server aufgesetzt hat, sondern nen Linux-Profi der das beruflich macht, muss ich mich nicht darum kümmern ^^

Naja nicht wirklich :) Der oben genannte Profi mag Proxmox und deswegen ist das so... :D soll mich aber nicht stören, kenne mich da nicht super gut aus
 

lucas19961

Member
Hey ich habe das startscript von @ch4os genommen aber wenn ich den befehl update-rc.d sinusboot.sh defaults eingebe komm das :


insserv: warning: script 'K01sinusboot.sh' missing LSB tags and overrides
insserv: warning: script 'sinusboot.sh' missing LSB tags and overrides
was kann ich da gegen machen
 

CrAazZyMaN21

Donor
is awesome!
Hey ich habe das startscript von @ch4os genommen aber wenn ich den befehl update-rc.d sinusboot.sh defaults eingebe komm das :


insserv: warning: script 'K01sinusboot.sh' missing LSB tags and overrides
insserv: warning: script 'sinusboot.sh' missing LSB tags and overrides
was kann ich da gegen machen
Ich glaube die Update Funktion ist noch nicht verfügbar. Das wir wahrscheinlich erst bei 1.0 gehen.
 

jpred

Member
Würde das auch gehen?

#!/bin/sh
### BEGIN INIT INFO
# Provides: sinusbot
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Sinus Musikbot
### END INIT INFO

# INIT Script by www.joa-logic.com
######################################
# Customize values for your needs: "User"; "DIR"

USER="bot"
DIR="/opt/ts3soundboard"
###### Sinus Bot start/stop script ######
case "$1" in
start)
su $USER -c "${DIR}/sinus_startscript.sh start"
;;
stop)
su $USER -c "${DIR}/sinus_startscript.sh stop"
;;
restart)
su $USER -c "${DIR}/sinus_startscript.sh restart"
;;
status)
su $USER -c "${DIR}/sinus_startscript.sh status"
;;
*)
echo "Usage: {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0
 

lucas19961

Member
Code:
#! /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="sinusbot"
USER="bot"
DIR_ROOT="/opt/ts3soundboard/"
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
 

Xuxe

Containerholic
Staff member
is awesome!
V.I.P.
Contributor
Insider
Ist mir zuviel Müll drin und beantwortet nicht meine Frage

Heyho,

ja dein Script oben sollte auch funktionieren musst halt die entsprechenden Startscripts anlegen. ^^ Wenn dir doch zu viel müll drin ist ein eigenes Schreiben? ;)
Zu dem das der Consolen befehl von dem Script aus den Ressourcen nicht geht -> Der sollte gehen allerdings nicht wenn man versucht als Root auf den Screen eines Subusers zuzugreifen ;)

ALSO: Um es nochmal Offiziell zu sagen -> https://forum.sinusbot.com/resources/linux-bootscript-for-the-sinusbot.6/ , wird von mir Gewartet und sollte dementsprechend auch verwendet werden wenn man Support möchte ^^
 

pcfreakxd

New Member
@Hushynarr
Solltest du nach einer sh suchen, kann ich meine anbieten. Nicht die beste aber erfüllt ihren Zweck :D
#!/bin/sh
#/etc/init.d/musikbot
### BEGIN INIT INFO
# Provides: musikbotautostart
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

case "$1" in
'start')
echo "--------------------------------------------------"
echo " Der Musik-Bot wird gestartet "
echo "--------------------------------------------------"
cd /opt/ts3soundboard
screen -dmS "bot1" script -a --flush -c "sudo -u bot xinit /opt/ts3soundboard/ts3bot -- /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac"
;;
'stop')
echo "--------------------------------------------------"
echo " Der Musik-Bot wird gestoppt "
echo "--------------------------------------------------"
killall -r screen
;;
*) echo "usage (Start | Stop | Restart)" ;;
esac
exit 0
Vielen Dank dafür funktioniert perfekt.Hab nur ts3bot mit sinusbot ausgetauscht.
 

Keuleeee

Member
Hier mal mein Startscript, was ich aktuell verwende.
Erlaubt u.a. wieder das Öffnen der Konsole:


#! /bin/bash

##################################################################################
# #
# Usage: ./launch.sh {start|stop|status|restart|console} #
# - 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 #
# To exit the console without stopping the server, press CTRL + A then D. #
# #
##################################################################################

SCREEN_NAME="sinusbot"
USER="sinusbot"
DIR_ROOT="/home/sinusbot"
BOT_RUNCMD="xinit ./ts3bot -- /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac"

# No edits necessary beyond this line
PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ ! -x `which awk` ]; then echo "ERROR: You need awk for this script (try apt-get install awk)"; exit 1; fi
if [ ! -x `which screen` ]; then echo "ERROR: You need screen for this script (try apt-get install screen)"; exit 1; 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 stop {
if ! status; then echo "$SCREEN_NAME could not be found. Probably not running."; exit 1; fi

if [ `whoami` = root ]
then
su - $USER -c "killall ts3bot -u $USER"
else
killall ts3bot -u $USER
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
tmp=$(su - $USER -c "screen -ls" | awk -F . "/\.$SCREEN_NAME\t/ {print $1}" | awk '{print $1}')
su - $USER -c "screen -r $tmp"
else
screen -r $(screen -ls | awk -F . "/\.$SCREEN_NAME\t/ {print $1}" | awk '{print $1}')
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 "Starting $SCREEN_NAME..."
start
sleep 5
echo "$SCREEN_NAME started successfully"
;;

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

restart)
echo "Restarting $SCREEN_NAME..."
status && stop
sleep 10
start
sleep 5
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
;;

*)
usage
exit 1
;;

esac

exit 0



Hey Leute.. ist euch eigentlich mal aufgefallen, das in den Script garkeine restart funktion definiert ist(?), aber angegeben ist das eine vorhanden ist?
könnte vielleicht jemand mal eine einfügen in dieses script`?
 

Xuxe

Containerholic
Staff member
is awesome!
V.I.P.
Contributor
Insider
Hey Leute.. ist euch eigentlich mal aufgefallen, das in den Script garkeine restart funktion definiert ist(?), aber angegeben ist das eine vorhanden ist?
könnte vielleicht jemand mal eine einfügen in dieses script`?

Weil es bei nem restart auch nur stop und start ausführt...
 
Status
Not open for further replies.
Top