[bglug] Avviare un programma come demone all'avvio
Horo
horo86@gmail.com
Mer 3 Ott 2007 23:27:23 CEST
Ciao a tutti,
Ho la necessità di avviare un programma come demone al boot della
macchina. Per la precisione di tratta del server dedicato per
OpenaArena.
Per prima cosa ho creato uno script che mi avvia il server con i
parametri che mi servono, semplicemente lo script richiama la cartella
contenente l'eseguibile e lo lancia con il seguente comando:
./ioq3ded.i386 +set dedicated 2 +exec ServerConfig.cfg
Ho messo questo script in /home/sistemi/script/startOAserver.sh
Lo script funziona. e per il momento lo lancio al log-in dell'utente
sistemi mediante 'sessioni'--> 'programmi di avvio' di gnome
Vorrei però gestire questo script come demone e cioè lanciarlo al boot
della macchina e poterlo gestire con comandi tipo:
/etc/init.d/OAServer start | stop | restart
Mi sembra di avere capito che per fare questo devo:
- creare uno script(OAServer.sh) da mettere in /etc/init.d/ che lanci lo
script di cui parlavo prima e che gestisca start | stop | restart
- Creare un collegamento allo script in /etc/init.d/ nella cartella del
runlevel ES: ln -s /etc/init.d/OAServer.sh /etc/rc2.d/S99OAServer
A quanto pare con questi semplici passaggi il tutto dovrebbe
funzionare... ma prima di provare volevo chiedere conferma a voi...
Altra cosa, questa sarebbe la bozza dello script OAServer.sh da mettere
in /etc/init.d/.
Sapete dirmi se è corretto? Ho preso spunto qua e la sulla rete...
Il sistema su cui dovrei fare questa cosa è Debian 4 Etch
Grazie,
Ciao a tutti
P.S. scusate se sono stato contorto o poco chiaro nella spiegazione ;)
#!/bin/sh
# init script per lanciare il server di OpenArena come demone al boot
# 03 Ottobre 2007
# script da avviare
SCRIPT="/home/sistemi/script/startOAserver.sh"
# descrizione dello script
DESC="OpenaArena Dedicated Server"
# log dello script
LOGDIR="/var/log/OAServer"
ERRORLOG="OAServer-error.log"
LOG="OAServer.log"
# pidfile
PIDFILE = "/var/run/OAServer.pid"
# parametri script
SCRIPTOPTION=""
# parametri demone
# - USER = utente proprietario che avvia lo script
# - GROUP = gruppo proprietario che avvia los cript
USER="sistemi"
GROUP="sistemi"
DAEMONOPTION="--chuid $USER:$GROUP --group $GROUP --umask 0022 \
--nicelevel 0 --user $USER"
# controllo che lo script esista
test -e $SCRIPT || exit 0
# controllo che esista la directory di log
if [ ! -d $LOGDIR ]; then
mkdir -m 755 $LOGDIR
fi
case "$1" in
start)
echo -n "Starting $DESC "
start-stop-daemon --start $DAEMONOPTION --exec $SCRIPT --pidfile \
$PIDFILE --make-pidfile --background -- $SCRIPTOPTION \
> $LOGDIR/LOG 2> $LOGDIR/$ERRORLOG
echo "."
;;
stop)
echo -n "Stopping $DESC"
start-stop-daemon --stop --oknodo --pidfile $PIDFILE
echo "."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usa: $0 {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
Maggiori informazioni sulla lista
bglug