Re: Несколько вопросов вразброс
10:53 Thu 19 Jul , Igor Chumak wrote:
> Защиту от запуска второй копии я делал так:
>
> if [ -f $lockfile ]
> then
> echo "Lock file $0.lock exist!"
> while [ -f $lockfile ]
> do
> pid=`cat $lockfile`
> if [ -n "$pid" ]; then
> echo "pid=$pid in lockfile; our pid=$$"
> if ps $pid ; then
> echo "Process exist; waiting"
> else
> echo "no process with $pid; remove lockfile"
> rm -f $lockfile
> fi
> else
> echo "no process with $pid; remove lockfile"
> rm -f $lockfile
> fi
> echo "sleep 10s"; sleep 10
> done
> fi
> echo $$>$lockfile
>
> (Если обнаруживаем вторую копию - ждем пока она завершится.)
Такая защита может наплодить процессов, которые месяцами ждут разблокировки.
Для себя я выбрал решение с таймаутом, если скажем за 6 часов блокировку не
удалось получить, то процесс вываливается с ошибкой.
--
WBR, Andrey Tataranovich
Reply to: