> moge zrobic to dla dowolnego programu czy te skrypty sa udostepniane tylko w
> "gotowych" paczkach?
Oo... to nie microsoft z magicznymi gotowcami w (service) paczkach.
Trochę basha

----- serverek --------------------------------------------------------
#!/bin/bash
function Start
{
echo -n "Starting the server... "
# polecenia
/path/to/mangosd
/path/to/realmd
# koniec
echo -en "e[32m"
echo -en "done"
echo -en "e[0m"
echo -en "n"
}
function Stop
{
echo -n "Stopping the server... "
# polecenia
killall mangosd
killall realmd
# koniec
echo -en "e[32m"
echo -en "done"
echo -en "e[0m"
echo -en "n"
}
case $1 in
"start")
Start
;;
"stop")
Stop
;;
"restart")
Stop
Start
;;
*)
echo "Usage:"
echo " $0 [start|stop|restart]"
esac
----- EOF --------------------------------------------------------
W Start i Stop wstawiasz swoje polecenia, wrzucasz plik do jakiegoś bin/ i ustawiasz na wykonywalny (chmod a+x serverek).
PS.
echo -en "e[32m"
echo -en "done"
echo -en "e[0m"
echo -en "n"
To mi się nudziło i zrobiłem kolorki xD - jak nie chcesz to wstaw tam po prostu:
echo "done"
PS2.
Jak ci się bardzo nudzi i chcesz mieć skrypt idealny to po każdym wykonaniu jakiegos polecenia powinienes odczytywać jego rezultat i dodawać do zmiennej:
wynik=0
/path/to/mangosd
wynik=`expr $wynik + $?`
/path/to/realmd
wynik=`expr $wynik + $?`
I teraz jezeli wynik jest 0 (bez bledow) to wyswietlasz na zielono "done", a jak różny od 0 to wyświatlasz na czerwono "failed"
if [ $wynik -eq 0 ]; then
echo -en "e[32m"
echo -en "done"
echo -en "e[0m"
echo -en "n"
else
echo -en "e[31m"
echo -en "failed"
echo -en "e[0m"
echo -en "n"
fi
Wtedy możesz przekierować również wyniki poleceń do jakiegoś pliku logów, czyli dla każdego z poleceń kierujemy strumień out oraz err do pliku:
/path/to/mangosd >> /path/to/logfile 2>&1
I tak samo dla realmd oraz killall-ów.
Do tego na początek pliku usunięcie starego logfile:
rm -f /path/to/logfile
Oczywiście user wykonujący skrypt musi mieć prawa zapisu do katalogu z plikiem logu /path/to/logfile.
Zatem będzie coś takiego:
----- serverek2 --------------------------------------------------------
#!/bin/bash
function Start
{
echo -n "Starting the server... "
wynik=0
/path/to/mangosd >> /path/to/logfile 2>&1
wynik=`expr $wynik + $?`
/path/to/realmd >> /path/to/logfile 2>&1
wynik=`expr $wynik + $?`
if [ $wynik -eq 0 ]; then
echo -en "e[32m"
echo -en "done"
echo -en "e[0m"
echo -en "n"
else
echo -en "e[31m"
echo -en "failed"
echo -en "e[0m"
echo -en "n"
fi
}
function Stop
{
echo -n "Stopping the server... "
wynik=0
killall mangosd >> /path/to/logfile 2>&1
wynik=`expr $wynik + $?`
killall realmd >> /path/to/logfile 2>&1
wynik=`expr $wynik + $?`
if [ $wynik -eq 0 ]; then
echo -en "e[32m"
echo -en "done"
echo -en "e[0m"
echo -en "n"
else
echo -en "e[31m"
echo -en "failed"
echo -en "e[0m"
echo -en "n"
fi
}
rm -f /path/to/logfile
case $1 in
"start")
Start
;;
"stop")
Stop
;;
"restart")
Stop
Start
;;
*)
echo "Usage:"
echo " $0 [start|stop|restart]"
esac
----- EOF --------------------------------------------------------