シェルスクリプトで重複起動(二重起動)防止

シェルスクリプトの二重起動防止は、

  • ロックファイルを使用する
  • pgrep、pkill、pidofコマンドを使用する

等、色々方法があると思いますが、
以下は、単純なファイル/ディレクトリ確認で重複起動チェックする方法です。

#!/bin/sh

PIDFILE=$(basename $0).pid

if [ -s ${PIDFILE} ] ; then
    if [ -d /proc/$(cat ${PIDFILE}) ] ; then
        # 多重起動
        exit
    fi
fi
echo $$ > ${PIDFILE}

# 処理

と、まー今さらなネタでした。