Hi, > ------- Additional Comments From mike@altlinux 2007-08-31 16:57 ------- > Вот с таким перед погашением старого экземпляра работает: > > waitpidfile() Тогда уж wait_pid с pid'ом на входе вместо файла. > { > [ -z "$1" ] && exit 1 [ -n "$1" ] || return > MAXCOUNT=50 local maxcount="${2:-50}" > counter=0 local counter=0 > until [ -s "$1" ]; do > [ "$((counter++))" -eq "$MAXCOUNT" ] && break > sleep 0.1 > done while [ "$counter" -lt "$maxcount" ] && kill -0 "$1" 2>/dev/null; do sleep 0.1 counter="$(($counter+1))" done ! kill -0 "$1" 2>/dev/null > } > > Предлагаю MAXCOUNT в десятых секунды пытаться сперва взять из $2, по дефолту -- > 50, и всунуть это безобразие в functions. В виде, пригодном для stop_daemon, можно и в functions. > Только тут ещё один вопрос -- я помню, что sleep 0.1 эффективнее, а led@ вот > говорит, что как раз наоборот -- usleep 100000. sr@ сказал, что без разницы. > Как оно там на самом деле? :) (пока приведу к твоему виду) sr@ прав, они работают примерно одинаково: один и тот же системный вызов nanosleep(2), usleep подубовее, вероятно sleep переносимее. -- ldv