[bglug] Ho bisogno di una mano per uno script
mlpita@bergamo3.it
mlpita@bergamo3.it
Mar 31 Ott 2006 16:53:10 CET
Ciao a tutti
Magari c'è qualcuno che ha voglia di darmi una mano con questo script. Io sono
un neofita di shell scripting e ci sto perdendo la giornata.
Avrei bisogno di uno script da mettere in /etc/init.d da avviare e fermare nei
vari runlevel che, lanciato con "start" dovrebbe lanciare un job periodico, e
lanciato con "stop" fermarlo. Lo start dev' essere non bloccante mentre lo
stop deve bloccare finche non si è fermato.
Mi sto documentando su come potrei fare ma non ci sono ancora riuscito. Nella
mia idea potrei prendere e memorizzare il PID del "thejob &" con $1 ma non so
come memorizzarlo tra successive chiamate dello script...
Preferirei evitare di creare dei file .pid etc etc perchè non si sa mai cosa
succede in caso di interruzione dell' alimentazione (i file rimangono ed al
riavvio lo script crede che stai ancora girando).
Allego uno pseudo codice che fa capire cosa vorrei fare
Ciao, Diego
-------------------------------------------------
#!/bin/bash
thejob()
{
while [ ! condizione di uscita ]
do
run my periodic command
sleep 60
done
}
startthejob()
{
se thejob non sta girando
thejob &
return 0
altrimenti
return 1
}
killthejob()
{
se thejob sta girando
uccidi thejob (o segnala condizione di uscita)
attendi che thejob sia morto
return 0
altrimenti
return 1
}
start()
{
return startthejob
}
stop()
{
return stopthejob
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
;;
esac
exit $?
Maggiori informazioni sulla lista
bglug