lockfileの使い方

多重起動を防止するのにlockfileというコマンドがあるとのこと。
デフォルトの環境では入ってなかったのでprocmailをインストールしてテスト。

#!/bin/bash

LOCKFILE=./lock.file

lockfile -5 -r 2 $LOCKFILE
if [ $? -ne 0 ]; then
  echo "lock failed"
  exit 1
fi

echo "lock success!!"
sleep 15

rm -f $LOCKFILE

既にロックされているファイルにlockfileコマンドを実行しても待ち状態になる。
引数で間隔とか試行回数、タイムアウト時間も設定できるのですごく便利。