Database JUNKY

MySQL,MariaDBを中心としたブログです

shell script の二重起動を抑止する方法

特に説明する部分でもないですが、cron等の繰り返し設定で2重に起動しないようにするbashです。該当シェルスクリプトの先頭に追加しておくと便利 システムを長く運用していると、かならず出くわすのが、このシェル二重起動、場合によっては、サーバーに負荷かけまくりで大変なことになっちゃうのでなんとなくこんな感じで空振りさせるのがいいのかもよ?という手順

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

こんな感じでいいのかな?っと思う

# 二重起動防止
_process=`basename $0`

_pcnt=`pgrep -fo ${_process} | wc -l`

if [ ${_pcnt} -gt 1 ]; then
  echo "This script has been running now. proc : ${_pcnt}"
  exit 1
fi