в арче все демоны лежат в
/etc/rc.d, там же лежит файлик
functions
автостарт демонов настраивается в
/etc/rc.conf добавлением имени демона в массив
DAEMONS.
Код:
# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
# - prefix a daemon with a ! to disable it
# - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng network netfs crond xinetd sshd hal mysqld cherokee [B]lserverd[/B])
в других дистро по другому, так что адаптация все равно потребуется.
я создавал симлинки на GameServer_loop.sh и LoginServer_loop.sh
Код:
sudo ln -sf /usr/bin/lsloop /opt/lserver/loginserver/LoginServer_loop.sh
sudo ln -sf /usr/bin/gsloop /opt/lserver/gameserver/GameServer_loop.sh
собственно, содержимое файла
/etc/rc.d/lserverd
изменяем
login на имя пользователя, от которого запускается сервер
Код:
#!/bin/bash
# general config [B](правим для своего дистро)[/B]
[B]. /etc/rc.conf
. /etc/rc.d/functions[/B]
case "$1" in
start)
stat_busy "Starting lineage2 servers"
sudo -u [B]login[/B] /usr/bin/lsloop &
sudo -u [B]login[/B] /usr/bin/gsloop &
if [ $? -gt 0 ]; then
stat_fail
else
add_daemon lserverd
stat_done
fi
;;
stop)
stat_busy "Stopping lineage2 servers"
killall -KILL LoginServer_loop.sh
killall -KILL GameServer_loop.sh
killall -TERM java
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon lserverd
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
;;
esac
exit 0
соответственно, после ребута будут автоматически запускаться сервера и принудительно останавливаться при завершении работы. я даже убрал авторестарт в таблице global_tasks и поставил ребут по крону в 3.50 утра.
админам: просьба добавить в тег SOURCE подсветку синтаксиса shell