[Comm] Создание стартовых скриптов

Tsaryuk Maksim Mad-Max-Traveller на yandex.ru
Ср Авг 26 07:31:01 MSD 2009


Задался задачей запуска сервера TeamSpeak2.
Так как в репозитории такового нет, скачал с сайта разработчиков 
ts2_server_rc2_202319.tar.bz2

По мимо конфигов в нем есть бинарный файл - server-linux,
и стартовый скрипт - teamspeak2-server_startscript.

В системе создал юзера teamspeak, запретил ему вход в систему usermod 
-s /bin/false teamspeak

Подскажите, как теперь его добавить в автозагрузку. То есть как 
добавить его я знаю chkconfig --add, а вот как правильно написать 
стартовый скрипт нет.
Создал скрипт по шаблону:

#!/bin/sh
#
# Init file for teampeak service
#
# chkconfig: 345 91 19
# description:	teampeak service
# processname: teamspeakd
# config: /home/teamspeak/tss2_rc2/server.ini
# pidfile: /var/run/teamspeak/teamspeak.pid

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

PIDFILE=/var/run/teamspeak/teamspeak.pid
LOCKFILE=/var/lock/subsys/teamspeak
PROCESSNAME=teamspeakd
RETVAL=0

start()
{
	get_status >/dev/null
	if [ $RETVAL -eq 1 ]; then
		echo "Removing stale pidfile"
		rm -f "$PIDFILE"
	fi
	start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" 
--expect-user teamspeak -- teamspeak2
	RETVAL=$?
	return $RETVAL
}

stop()
{
	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user 
teamspeak -- teamspeak2
	RETVAL=$?
	return $RETVAL
}

restart()
{
	stop
	sleep 2
	start
}

reload()
{
	msg_reloading template
	stop_daemon --pidfile "$PIDFILE" --expect-user teamspeak -HUP -- 
teamspeak2
	RETVAL=$?
	return $RETVAL
}

get_status()
{
	status --pidfile "$PIDFILE" --expect-user teamspeak -- teamspeak2
	RETVAL=$?
}

# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	reload)
		reload
		;;
	restart)
		restart
		;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
	condreload)
		if [ -e "$LOCKFILE" ]; then
			reload
		fi
		;;
	status)
		get_status
		;;
	*)
		msg_usage "${0##*/} 
{start|stop|reload|restart|condstop|condrestart|condreload|status}"
		RETVAL=1
esac

exit $RETVAL

Тут teamspeak2, как я понимаю, ищется в /bin ?
Исходя из этого я создал симлинк на скрипт запуска 
/home/teamspeak/tss2_rc2/teamspeak2-server_startscript

При попытке запустить получаю:
# service teamspeak2 start
Starting teamspeak2 service: Error starting daemon. Aborted
 
    [FAILED]

Подскажите, где ошибки, и где почитать о создании и синтаксисе 
стартовых скриптов?


Подробная информация о списке рассылки community