85
91

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[一番簡単かも]cron起動プロセスの多重起動防止ワンライナー

Last updated at Posted at 2016-10-21

よくこんな感じで1分おきにジョブを流したい場合があると思う。

* * * * * /path/to/your/cron_job.sh

ところがこのcron_job.shが1分以内に処理が終わらない場合、1分後には同じスクリプトが2重で起動されてしまうので、その防止方法について考える。

こういう場合ジョブの実行開始時にロックファイルを作成して、ロックファイルがあったら後追いのcronでは実行しちゃだめよーという方法がポピュラーらしいが、なんか面倒に感じる。

一番簡単かも?な多重起動防止機構付きのcrontabワンライナー

ということで、簡単な方法を求めていたら、pidofコマンドを使ってジョブの実行状況を確認する方法だとワンライナー的に書けて一番便利そう。これでええやん。

* * * * * /usr/sbin/pidof -x cron_job.sh >/dev/null || /path/to/your/cron_job.sh

上記のワンライナーの細かい説明と、一応実際に動作するか試してみましたので、詳細見たい方はこちらも併せてご覧ください。

cron多重起動防止の詳細解説&テスト結果

85
91
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
85
91

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?