In article <ci5m2m$ipr$1@news-est.ocn.ad.jp>,
        tsuyama@be.to writes:
> シェルスクリプトの作り方がよくわからなかったので,かなり適当
> ですが,これで今のところうまく動いているみたいです。

  うーん。これだと、[ -f $LOCK ] を終えて touch $LOCK までの一瞬の間に、
他のプロセスが [ -f $LOCK ] を通過してしまう可能性がありますね。…と一瞬
考えましたが、5分毎に動かすスクリプトの相互排除ならこれでも十分なのか。
[ -f $LOCK ] から touch $LOCK までに5分かからない限り。

  もしその可能性まで考えて厳密に相互排除をやるなら、[ -f $LOCK ] と 
touch $LOCK に相当することを一まとめにやらなければならないですね。

        if bash -c "set -o noclobber; : > $LOCK" 2>/dev/null; then
                :
        else
                exit 1
        fi
        /usr/local/bin/isbg.py
        rm -f $LOCK

という感じですかね。
  ただ、何かの理由でプロセスが死んでロックファイルだけが残った場合にどう
するかという厄介な問題は度外視して考えてますが。
  それから、procmailのおまけにlockfileというコマンドがあって、それを使う
こともできます。こちらは、ロックファイルが存在していてもそれがある程度以
上古ければ、削除してしまうということもできます。

  ちなみにcshにはset noclobberがありますが、もともとのshにはそれに相当す
るものって確かないんですよね。私にとって唯一、cshのshに対する優位点と感
じられる点です。
                                                nide@ics.nara-wu.ac.jp