[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [bash] PID file



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 <piviul@riminilug.it>
A: debian-italian@lists.debian.org
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
debian-italian-REQUEST@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmaster@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: [🔎] 515EDEF3.8010600@riminilug.it" target="_blank">http://lists.debian.org/[🔎] 515EDEF3.8010600@riminilug.it




Reply to: