cron 実行でスクリプトの多重起動を防止する方法

cron 実行でスクリプトの多重起動を防止する方法

linux_logo

スクリプトを同時に起動させない方法

定期処理を行う際に使われれる cron 処理にて、スクリプトを同時に起動させない方法をご紹介します。

通常はスクリプトの多重起動は気にしなくても良いですが、短期間で何度も実行するときや実行1回あたりの処理の時間が長いときには非常に有効な対策になります。

Advertisement

スクリプトを多重起動させないコマンド

考え方は簡単で pidof コマンドや ps コマンドを使用して、自分自身が実行されているかを確認します。もし自分が動作していなければ、処理を実行するコマンドへ移行すれば良いという考え方です。

今回は pidof コマンドを実行する際のコマンドの例を記載します。

サンプルコマンド

crontab でスクリプトを書くときはフルパスを書くことが基本になります。コマンドのフルパスは which コマンドで確認することができます。

pidof コマンドのフルパスを確認する方法

 

PHP スクリプトの多重起動を防止する

実践例として、需要が多い PHP の定期処理における多重起動を防止してみます。

まずは PHP のフルパスを確認します。

 

ドキュメントルート「/var/www/test/」に設置した「helloworld.php」を実行するシェルスクリプトを作成します。

 

最後に crontab に PHP を毎分実行する命令を記載します。

 

さいごに

cron の多重起動を防止する書き方は、豆知識として知っていると得することが多いです。特に同時に起動するとデッドロックする可能性があるプログラムなどには必ず設定して下さいね。

Advertisement

web開発カテゴリの最新記事