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

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: