uscrontab: ne pas afficher plusieurs fois un même message quand le verrou est posé. n'afficher le message sur la pause qu'avec un tty
This commit is contained in:
parent
9821d2021d
commit
dbc4d9a62f
23
uscrontab
23
uscrontab
|
@ -494,7 +494,7 @@ elif [ "$action" == "run" ]; then
|
||||||
# ne pas tenir compte de l'état de pause
|
# ne pas tenir compte de l'état de pause
|
||||||
:
|
:
|
||||||
elif check_pause "$pausefile" "$now"; then
|
elif check_pause "$pausefile" "$now"; then
|
||||||
ewarn "En pause. Réactiver avec $scriptname -Y"
|
isatty && ewarn "En pause. Réactiver avec $scriptname -Y"
|
||||||
ac_clean "$lockfile"
|
ac_clean "$lockfile"
|
||||||
exit 0
|
exit 0
|
||||||
elif [ -f "$pausefile" ]; then
|
elif [ -f "$pausefile" ]; then
|
||||||
|
@ -503,6 +503,7 @@ elif [ "$action" == "run" ]; then
|
||||||
|
|
||||||
if [ -n "$uscrontab" ]; then
|
if [ -n "$uscrontab" ]; then
|
||||||
default_lockfile="/var/run/$scriptname$uscrontab.lock"
|
default_lockfile="/var/run/$scriptname$uscrontab.lock"
|
||||||
|
lockdesc="$scriptname $uscrontab"
|
||||||
else
|
else
|
||||||
set_usercrontabs usercrontabs
|
set_usercrontabs usercrontabs
|
||||||
ac_set_tmpfile uscrontab
|
ac_set_tmpfile uscrontab
|
||||||
|
@ -511,6 +512,7 @@ elif [ "$action" == "run" ]; then
|
||||||
cat "$usercrontab" >>"$uscrontab"
|
cat "$usercrontab" >>"$uscrontab"
|
||||||
done
|
done
|
||||||
default_lockfile="/var/run/$scriptname$USCRONTAB_USER.lock"
|
default_lockfile="/var/run/$scriptname$USCRONTAB_USER.lock"
|
||||||
|
lockdesc="$scriptname $USCRONTAB_USER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$lockfile" == auto ]; then
|
if [ "$lockfile" == auto ]; then
|
||||||
|
@ -524,9 +526,7 @@ elif [ "$action" == "run" ]; then
|
||||||
[ -n "$lockdelay" ] || lockdelay="$USCRONTAB_LOCKDELAY"
|
[ -n "$lockdelay" ] || lockdelay="$USCRONTAB_LOCKDELAY"
|
||||||
|
|
||||||
if [ -n "$lockfile" ]; then
|
if [ -n "$lockfile" ]; then
|
||||||
lockwarn="${lockfile%.lock}.lockwarn"
|
lastmsgfile="${lockfile%.lock}.lastmsg"
|
||||||
autoclean "$lockwarn"
|
|
||||||
|
|
||||||
retry=1
|
retry=1
|
||||||
while [ -n "$retry" ]; do
|
while [ -n "$retry" ]; do
|
||||||
case "$(lf_trylock -h "$lockdelay" "$lockfile")" in
|
case "$(lf_trylock -h "$lockdelay" "$lockfile")" in
|
||||||
|
@ -535,13 +535,16 @@ elif [ "$action" == "run" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
stale)
|
stale)
|
||||||
msg="Un verrou sur '$scriptname $uscrontab' est posé depuis plus de $lockdelay heures. Veuillez faire vos vérification et supprimer le cas échéant le fichier $lockfile"
|
msg="Un verrou sur '$lockdesc' est posé depuis plus de $lockdelay heures. Veuillez faire vos vérification et supprimer le cas échéant le fichier $lockfile"
|
||||||
|
lastmsg=
|
||||||
|
[ -f "$lastmsgfile" ] && lastmsg="$(<"$lastmsgfile")" || lastmsg=
|
||||||
|
|
||||||
logger -p cron.warn -t "$scriptname" -- "$msg"
|
logger -p cron.warn -t "$scriptname" -- "$msg"
|
||||||
if [ -f "$lockwarn" ]; then
|
if [ "$msg" != "$lastmsg" ]; then
|
||||||
edebug "$msg"
|
|
||||||
else
|
|
||||||
touch "$lockwarn"
|
|
||||||
ewarn "$msg"
|
ewarn "$msg"
|
||||||
|
echo "$msg" >"$lastmsgfile"
|
||||||
|
else
|
||||||
|
edebug "$msg"
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
@ -550,7 +553,7 @@ elif [ "$action" == "run" ]; then
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
ac_clean "$lockwarn"
|
rm -f "$lastmsgfile" 2>/dev/null
|
||||||
autoclean "$lockfile"
|
autoclean "$lockfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue