[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