Спасибо, удалось!
Правда, пришлось несколько изменить:
mangos, главгый скрипт для сервиса
добавил ;; перед *) - ошибка синтаксиса?
убрал -9 после kill - для аккуратной остановки с ret code 0
Кстати, зачем такой сложный (через номер порта) способ остановки?
Код:
killall mangos-realmd
хуже?
Код:
#!/bin/bash
case "$1" in
start) echo -n "Starting server"
sudo -b -u mangos /home/mangos/mangoszero/bin/realm.sh
sudo -b -u mangos /home/mangos/mangoszero/bin/mangos.sh
echo "..."
;;
stop) echo -n "Stoping server"
kill `lsof -i -n -P | grep -e "TCP.*:8085" | head -n1 | awk '{print $2}'`
kill `lsof -i -n -P | grep -e "TCP.*:3724" | head -n1 | awk '{print $2}'`
;;
*) echo "Usage: /etc/init.d/server start|stop"
exit 1
;;
esac
exit 0
realm.sh
увеличил SLEEPTIME и добавил возможность нормально остановить сервер
иначе главный скрипт был бы не в состоянии его остановить
Код:
#!/bin/sh
CMDNAME='mangos-realmd'
RESTARTCMD='/home/mangos/mangoszero/bin/mangos-realmd'
SLEEPTIME=5
while test 1
do
OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`
if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
echo Restarting service...
$RESTARTCMD
if [ $? = 0 ]; then
echo Normal Exit
exit
fi
else
echo Server Online...
fi
sleep $SLEEPTIME
done
mangos.sh
аналогично
Код:
#!/bin/sh
CMDNAME='mangos-worldd'
RESTARTCMD='/home/mangos/mangoszero/bin/mangos-worldd'
SLEEPTIME=5
while test 1
do
OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`
if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
echo Restarting service...
$RESTARTCMD
if [ $? = 0 ]; then
echo Normal Exit
exit
fi
else
echo Server Online...
fi
sleep $SLEEPTIME
done
Пришлось в настройках мангоса прописать все пути как абсолютные
С 3х значным номером возиться не стал, был не занятый S93, его и занял
Нормально?