Bashスクリプトで簡単に二重起動を防ぐ方法

CentOS6

Webサービスを実装していると、バッチ起動のためにBashのスクリプトを書いたりすることがあります。

バッチの仕様上、2つ同時に起動をさせたくない時もあると思います。簡単に二重起動を防ぐ記述を紹介します。

■スクリプトサンプル


#!/bin/bash

if [ $$ -ne $(pgrep -fo "$0") ]; then
  echo "すでに起動されています"
  exit 1
fi

echo "ここにコマンドを記述する"

上記のように記述すると、すでにバッチが起動している時に再度同じバッチを起動しようとすると「すでに起動されています」と表示されてその下のコマンドは実行されません。

結構簡単にできるので、やってみましょう。