Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
73
Help us understand the problem. What is going on with this article?
@meguroman

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

More than 1 year has passed since last update.

よくこんな感じで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多重起動防止の詳細解説&テスト結果

73
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
73
Help us understand the problem. What is going on with this article?