SHLOCK(1)

名前
shlock - シェルスクリプトで使用するロックファイルの作成

形式
shlock -p pid -f name [ -b ] [ -u ] [ -c ]

機能説明
shlock は name という名前のロックファイルを作成し、プロセス ID pid をそのファイルに出力しようとします。 すでにファイルが存在している場合、 shlock はそのファイルからプロセス ID を読み込み、そのプロセスが現在起動されているかどうか確認します。 そのプロセスが起動していれば、ファイルは作成されません。

ロックファイルを作成することができれば、 shlock は 0 の終了ステータスで終了し、そのファイルが現在起動しているプロセスを 参照していれば 0 以外の終了ステータスで終了します。

オプション

-b  プロセス ID は通常 ASCII 文字で読み込まれ、出力されています。 ``-b'' オプションを使用すると、バイナリの 整数 として出力されます。 他のシステムとの互換性のため、``-u'' オプションは ``-b'' オプションと同義で使用することができます。 これは、多くの UUCP パッケージでバイナリロックが使用されているためです。

-c  ``-c'' オプションを使用すると、 shlock はロックファイルを作成しませんが、 代わりにロックファイルが他のプログラムで使用しているのかどうかを調べるためそのファイルを使用します。 ロックされている場合、0 以外の終了ステータスで終了し、 ロックされていない場合(すなわち shlock をオプション無しで正常に起動できていたならば)、0 の終了ステータスで終了します。

使用例
次の例では、 shlock がシェルスクリプトでどのように使用されているかを示します。
    LOCK=/var/news/locks/LOCK.send
    trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
    if shlock -p $$ -f ${LOCK} ; then
        # 適切な処理を行う
    else
        echo Locked by `cat ${LOCK}`
    fi

履歴
Peter Honeyman による HDB UUCP でのロックの記述の後、 Rich $alz <rsalz@uunet.uu.net> により記述されました。