che ne dici nel ramo else di fare un ciclo per N iterazioni con qualche sleep 
ogni volta guardando se il pid è ancora attivo.

Sapendo quanto dura (worst case*N) la tua sessione rsync alla fine del ciclo se 
il comando non è terminato (il pid esiste ancora) puoi rimuoverlo senza troppi 
problemi e killare l'istanza.

A quel punto rilanci rsync


 che ne dici?


Gianfranco



>________________________________
> Da: Pol Hallen <[email protected]>
>A: [email protected] 
>Inviato: Venerdì 5 Aprile 2013 14:48
>Oggetto: [bash] PID file
> 
>
>Ciao a tutti :-)
> 
>sto sistemando (finalmente!) uno script rsync tra due server remoti.
> 
>Ho implementato il PID file per non avere rsync paralleli e controproducenti 
>(in cron, rsync viene avviato tutti i giorni):
> 
>if [ -e /home/user/run/transfer1.pid ]
>then
>echo "yes"
>else 
>rsync [qui parte lo script]
>fi
>rm /home/user/run/transfer1.pid
> 
>così funziona :-)
> 
>ma il problema è: se mentre rsync è in esecuzione cade la rete (o altro), 
>rsync si blocca e il PID file non viene rimosso, ergo rsync avviato da cron il 
>giorno successivo non partirà più.
> 
>Qualche idea?
> 
>grazie!
> 
>Pol
>
>

Rispondere a