Автозагрузка TeamSpeak

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
viktor6
Сообщения: 87
ОС: Debian

Автозагрузка TeamSpeak

Сообщение viktor6 »

Уважаемые гуру помогите разобраться добавил в /etc/init.d/teamspeak такой скрипт ког да вручную его запускаю sudo /etc/init.d/teamspeak start то он работает а вот после перезапуска системы отказывается автоматически запускаться.

Код: Выделить всё

#! /bin/sh
### BEGIN INIT INFO
# Provides: TeamSpeak
# Required-Start: $network
# Required-Stop: $network
# Should-Start: $named mysqld postgresql ldap saslauthd
# Should-Stop: $named mysqld postgresql ldap saslauthd
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts the ts3 server
# Description: TeamSpeak  is flaxible, voice Server
### END INIT INFO

# Author: Foo Bar <foobar@baz.org>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"

export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"

COMMANDLINE_PARAMETERS="${2} inifile=ts3server.ini" #add any command line parameters you want to pass here
D1=$(readlink -f "$0")
BINARYPATH="/home/ts3/teamspeak3-server_linux-amd64"
cd "${BINARYPATH}"
LIBRARYPATH="$(pwd)"
USER="ts3"

if [ -e ts3server_linux_x86 ]; then
    if [ -z "`uname | grep Linux`" -o ! -z "`uname -m | grep 64`" ]; then
                echo "Do you have the right TS3 Server package for your system? You have: `uname` `uname -m`, not Linux i386."
        fi
        BINARYNAME="ts3server_linux_x86"
elif [ -e ts3server_linux_amd64 ]; then
        if [ -z "`uname | grep Linux`" -o -z "`uname -m | grep 64`" ]; then
                echo "Do you have the right TS3 Server package for your system? You have: `uname` `uname -m`, not Linux x86_64."
        fi
        BINARYNAME="ts3server_linux_amd64"
elif [ -e ts3server_freebsd_x86 ]; then
        if [ ! -z "`uname | grep Linux`" -o ! -z "`uname -m | grep 64`" ]; then
                echo "Do you have the right TS3 Server package for your system? You have: `uname` `uname -m`, not FreeBSD i386."
        fi
        BINARYNAME="ts3server_freebsd_x86"
elif [ -e ts3server_freebsd_amd64 ]; then
        if [ ! -z "`uname | grep Linux`" -o -z "`uname -m | grep 64`" ]; then
                echo "Do you have the right TS3 Server package for your system? You have: `uname` `uname -m`, not FreeBSD amd64."
        fi
        BINARYNAME="ts3server_freebsd_amd64"
else
    echo "Could not locate binary file, aborting"
    exit 5
fi

case "$1" in
    start)
        if [ -e ts3server.pid ]; then
            if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
                echo "The server is already running, try restart or stop"
                exit 1
            else
                echo "ts3server.pid found, but no server running. Possibly your previously started server crashed"
                echo "Please view the logfile for details."
                rm ts3server.pid
            fi
        fi
        if [ "${UID}" = "0" ]; then
            echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
            c=1
            while [ "$c" -le 10 ]; do
                echo -n "!"
                sleep 1
                c=$(($c+1))
            done
            echo "!"
        fi
        echo "Starting the TeamSpeak 3 server"
        if [ -e "$BINARYNAME" ]; then
            if [ ! -x "$BINARYNAME" ]; then
                echo "${BINARYNAME} is not executable, trying to set it"
                chmod u+x "${BINARYNAME}"
            fi
            if [ -x "$BINARYNAME" ]; then
                export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}"
                su $USER -s "/bin/bash" -c "./${BINARYNAME} ${COMMANDLINE_PARAMETERS}" > /dev/null &
                echo $! > ts3server.pid
                echo "TeamSpeak 3 server started, for details please view the log file"
            else
                echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server"
            fi
        else
            echo "Could not find binary, aborting"
            exit 5
        fi
    ;;
    stop)
        if [ -e ts3server.pid ]; then
            echo -n "Stopping the TeamSpeak 3 server"
            if ( kill -TERM $(cat ts3server.pid) 2> /dev/null ); then
                c=1
                while [ "$c" -le 300 ]; do
                    if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
                        echo -n "."
                        sleep 1
                    else
                        break
                    fi
                    c=$((++c))
                done
            fi
            if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
                echo "Server is not shutting down cleanly - killing"
                kill -KILL $(cat ts3server.pid)
            else
                echo "done"
            fi
            rm ts3server.pid
        else
            echo "No server running (ts3server.pid is missing)"
            exit 7
        fi
    ;;
    restart)
        $0 stop && $0 start || exit 1
    ;;
    status)
        if [ -e ts3server.pid ]; then
            if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
                echo "Server is running"
            else
                echo "Server seems to have died"
            fi
        else
            echo "No server running (ts3server.pid is missing)"
        fi
    ;;
    *)
        echo "Usage: ${0} {start|stop|restart|status}"
        exit 2
esac
exit 0
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Автозагрузка TeamSpeak

Сообщение Rootlexx »

ls -l /etc/rc2.d/?
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: Автозагрузка TeamSpeak

Сообщение yars »

Права на запуск-то дали?
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
viktor6
Сообщения: 87
ОС: Debian

Re: Автозагрузка TeamSpeak

Сообщение viktor6 »

Rootlexx писал(а):
05.09.2013 00:17
ls -l /etc/rc2.d/?

Код: Выделить всё

lrwxrwxrwx 1 root root  19 Сен  5 10:24 S18teamspeak -> ../init.d/teamspeak



yars писал(а):
05.09.2013 01:40
Права на запуск-то дали?

та давал но не каких нет результатов думаю мож из скриптом что не так

вот лог из /var/log/boot.log

Код: Выделить всё

Thu Sep  5 10:42:26 2013: Starting OpenBSD Secure Shell server: sshd.
Thu Sep  5 10:42:27 2013: Starting the TeamSpeak 3 server
Thu Sep  5 10:42:27 2013: TeamSpeak 3 server started, for details please view the log file
Thu Sep  5 10:42:27 2013: Starting Linux Video Disk Recorder: vdr - aborted (to enable the daemon, edit /etc/default/vdr).
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: Автозагрузка TeamSpeak

Сообщение yars »

Teamspeak как бы запускается, но причину наблюдаемого, вероятно, нужно смотреть в его собственном логе. А куда он его пишет, я не в курсе. Хотя, может, причина на поверхности -

Код: Выделить всё

Thu Sep 5 10:42:27 2013:
Starting Linux Video Disk
Recorder: vdr - aborted (to
enable the daemon, edit /
etc/default/vdr).
Может, какие-нибудь ядерные модули не загружены...
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
viktor6
Сообщения: 87
ОС: Debian

Re: Автозагрузка TeamSpeak

Сообщение viktor6 »

yars писал(а):
05.09.2013 12:24
Teamspeak как бы запускается, но причину наблюдаемого, вероятно, нужно смотреть в его собственном логе. А куда он его пишет, я не в курсе. Хотя, может, причина на поверхности -

Код: Выделить всё

Thu Sep 5 10:42:27 2013:
Starting Linux Video Disk
Recorder: vdr - aborted (to
enable the daemon, edit /
etc/default/vdr).
Может, какие-нибудь ядерные модули не загружены...

Проблема в самом скрипте запуска не пойму почему но когда меняю строку

Код: Выделить всё

su $USER -s "/bin/bash" -c "./${BINARYNAME} ${COMMANDLINE_PARAMETERS}" > /dev/null &

на

Код: Выделить всё

su $USER -s "/bin/bash" -c "./${BINARYNAME} ${COMMANDLINE_PARAMETERS}" >> /home/ts3/teamspeak3-server_linux-amd64/logs.txt &

то запускается
Спасибо сказали: