[Volgograd] lockfile
Serge S. Fukanchik
fuxx на solvo.ru
Вт Авг 26 15:32:13 MSD 2003
Maxim Kovrov писал мне ранее:
>#!/bin/bash
>export DISPLAY=':0'
>
>#MZ='/usr/bin/mozilla'
>MZ='/usr/bin/firebird'
>cd $HOME
>
>LOCKFILE=.mzsync.lock
>
>URI=$1
>
>lockfile -r20 -1 $LOCKFILE
>
>if $MZ -remote "ping()" 2> /dev/null; then
^^ я бы написал "$MZ -remote ping ()" а не $MZ -remote "ping()"
> $MZ -remote "openURL($URI, new-tab)" &>~/mz.log &
>else
> $MZ "$URI" &>~/mz.log &
^^^ сделай nohup "$MZ $URI" >&~/mz.log &
> until $MZ -remote "ping()"; do
> sleep 1 # wait 1 sec
> done
># sleep 2
>fi
>
>trap "rm -f $LOCKFILE;exit 0" 0 1 2 3 9 13 15 <<- сюда вместо всех этих EXIT и больше ничего. EXIT это не сигнал. Это просто способ сказать команде trap чтбы она вызывала команды ПЕРЕД ЛЮБЫМ выходом. Неважно каким, exit это, сигнал или чего там еще. Не получал моего письма что-ли?
^^^^^^^^^^^^^^^^^^^^^^ эту строчку в самое начало скрипта.
Зачем тебе перехватывать сигналы здесь, перед тем как ты
выйдешь из него?
>
>rm -f $LOCKFILE
^^^^^^это зачем?
Ты же удаляешь перед самым выходом из скрипта, при помощи
trap ... EXIT, разве нет?
>
>
>export DISPLAY=
>cd -
^^^^^^^ эти две строчки вовсе непонятны.
Че за хрень? Че ты ими хотел сделать?
Ты же сейчас выйдешь из скрипта, этот bash умрет а с ним
и все его переменные, текущая директория и все такое.
Просто офигеть. fortune просто в ударе!
--
I always pass on good advice. It is the only thing to do with it.
It is never any good to oneself.
-- Oscar Wilde, "An Ideal Husband"
Подробная информация о списке рассылки Volgograd