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
|
||||
:
|
||||
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"
|
||||
exit 0
|
||||
elif [ -f "$pausefile" ]; then
|
||||
|
@ -503,6 +503,7 @@ elif [ "$action" == "run" ]; then
|
|||
|
||||
if [ -n "$uscrontab" ]; then
|
||||
default_lockfile="/var/run/$scriptname$uscrontab.lock"
|
||||
lockdesc="$scriptname $uscrontab"
|
||||
else
|
||||
set_usercrontabs usercrontabs
|
||||
ac_set_tmpfile uscrontab
|
||||
|
@ -511,6 +512,7 @@ elif [ "$action" == "run" ]; then
|
|||
cat "$usercrontab" >>"$uscrontab"
|
||||
done
|
||||
default_lockfile="/var/run/$scriptname$USCRONTAB_USER.lock"
|
||||
lockdesc="$scriptname $USCRONTAB_USER"
|
||||
fi
|
||||
|
||||
if [ "$lockfile" == auto ]; then
|
||||
|
@ -524,9 +526,7 @@ elif [ "$action" == "run" ]; then
|
|||
[ -n "$lockdelay" ] || lockdelay="$USCRONTAB_LOCKDELAY"
|
||||
|
||||
if [ -n "$lockfile" ]; then
|
||||
lockwarn="${lockfile%.lock}.lockwarn"
|
||||
autoclean "$lockwarn"
|
||||
|
||||
lastmsgfile="${lockfile%.lock}.lastmsg"
|
||||
retry=1
|
||||
while [ -n "$retry" ]; do
|
||||
case "$(lf_trylock -h "$lockdelay" "$lockfile")" in
|
||||
|
@ -535,13 +535,16 @@ elif [ "$action" == "run" ]; then
|
|||
exit 0
|
||||
;;
|
||||
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"
|
||||
if [ -f "$lockwarn" ]; then
|
||||
edebug "$msg"
|
||||
else
|
||||
touch "$lockwarn"
|
||||
if [ "$msg" != "$lastmsg" ]; then
|
||||
ewarn "$msg"
|
||||
echo "$msg" >"$lastmsgfile"
|
||||
else
|
||||
edebug "$msg"
|
||||
fi
|
||||
exit 1
|
||||
;;
|
||||
|
@ -550,7 +553,7 @@ elif [ "$action" == "run" ]; then
|
|||
esac
|
||||
done
|
||||
|
||||
ac_clean "$lockwarn"
|
||||
rm -f "$lastmsgfile" 2>/dev/null
|
||||
autoclean "$lockfile"
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue