[bglug] Ho bisogno di una mano per uno script

Gianantonio Cattozzo gcattozzo@gmail.com
Mar 31 Ott 2006 17:02:31 CET


Crontab non aiuterebbe ?


On 10/31/06, mlpita@bergamo3.it <mlpita@bergamo3.it> wrote:
>
> 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 $?
>
> --
> Sito BgLUG: http://www.bglug.it
> Mailing list: http://www.bglug.it/list/bglug
> BgLUG-biz!: http://www.bglug.it/list/bglug-biz
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.linux.it/pipermail/bglug/attachments/20061031/40d70316/attachment.htm


Maggiori informazioni sulla lista bglug