Non ne vedo il motivo, semplicemente rsync di default non ha timeout, quindi rimane in attesa all'infinito (e lui non vuole lanciarlo due volte).
Mettendo il timeout sei sicuro che sia in caso rsync vada in timeout, sia in caso che rsync finisce o crasha comunque il pid viene cancellato. Se il server è giù per i suoi motivi è contemplato già nel timeout. Ci sono numerosi casi non considerati, ad esempio il fatto che si spenga/riavvii il pc durante l'esecuzione di rsync, o più in generale lo script venga killato a mano La certezza matematica è possibile solo con soluzioni veramente complicate ed onerose, e comunque qualche assunzione semplificativa la dovrai sempre fare Gianfranco >________________________________ > Da: Piviul <[email protected]> >A: [email protected] >Inviato: Venerdì 5 Aprile 2013 16:25 >Oggetto: Re: [bash] PID file > >Pol Hallen scrisse in data 05/04/2013 14:48: >> [...] >> >> 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? >> >Non ho ben capito cosa faccia rsync quando cade la rete... se si blocca >allora sei tu a killare il tuo processo è giusto? > >Io comunque in queste situazione uso il comando trap; qualcosa come: > >#!/bin/bash > >[...] > ># inizio fase critica >lock_path=/.../.../... >if [ -e $lock_path ]; then > $logger "E: another instance of $(basename $0 .sh) is running: exit >forced" > exit 1 >fi >main_trap_exit="rm -f $lock_path" >trap "{ $main_trap_exit; exit 1 }" INT TERM EXIT >echo $$ > $lock_path > >[inserisci qui il tuo codice critico] > >eval $main_trap_exit >trap - INT TERM EXIT > >Ciao > >Piviul > > >-- >Per REVOCARE l'iscrizione alla lista, inviare un email a >[email protected] con oggetto "unsubscribe". Per >problemi inviare un email in INGLESE a [email protected] > >To UNSUBSCRIBE, email to [email protected] >with a subject of "unsubscribe". Trouble? Contact [email protected] >Archive: http://lists.debian.org/[email protected] > > > >

