[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

525users がブックマーク コメント 42

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

525 users qiita.com/ko1nksm

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント42

  • 注目コメント
  • 新着コメント
kazuau
バッチ処理の異常終了時って人手で確認してリカバリするまでロック解放してほしくないことの方が多くない?

その他
snowcrush
記事の内容とはずれるけど、そこまで排他制御を求めるなら、そもそもシェルスクリプトで書くべきではないと思う。

その他
napsucks
flockは当時多かったnfsベースのシステムで使えなかった(多重にロックを獲得できたりするので使い物にならない)ので世の中のサンプルはほとんどがsymlink使うことが多いよね

その他
sin20xx
トップコメに一票かな。なんというか異常終了時の一番の問題はその時点の処理含め処理の結果が保証されない可能性がありその事も含めセーフティに処理する必要があるから処理が終了しても解放されるべきではないかな

その他
shag
symlink or flock は用途に依るとしか。それよか反論絶対禁止的な文体が気になる。

その他
nmcli
基本に立ち返る

その他
ysync
「専用のシステムコールが必要とされるようなものを、それなしで実現するのは困難です。」まぁそうなんだけど。その場で自身で叩くものくらいがシェルスクリプトの守備範囲な気もするのでな。

その他
hnw
djb先生のsetlock使ってたんだけどメリデメとしてはどうなんすかね...。

その他
asakura-t
多重起動防止くらいならmkdirするよりflockのほうがいいだろうね/daemontools使ってるのでsetlock使ってるけど。fd使った操作とかが違うのね。

その他
rochefort
flock知らなんだ

その他
jonysand
[排他/共有ロック]

その他
kzm1760
全部は読んでないけどflockが便利そうというのは分かった。

その他
HHR
flock

その他
Windymelt
面白い

その他
suginoy
なぜか京大スパコンのファイル消失事故が思い出される。

その他
RMS-099
flock

その他
nanakoso
Windowsネイティブアプリはそもそも多重起動か(例:メモ帳)単体起動か(例:Officeアプリ)アプリ側で制御できる仕組みが元からある >Windowsガン無視

その他
manaten
シェルスクリプト使うかどうかは要件要求次第で、マッチしてるなら良さそう。要件が複雑なほどバッチ実行単位での排他制御はあまり本質的でなくなってくるので、更新エンティティにDBでロックかけるとかになりそう

その他
bluegold
flock()/fcntl() のファイルロックって、重複起動の確認用に使ったことがないな。mkdir一択。flock() は読み書きしたいファイルを直接ロックする時に使うものなような。(なので、プロセス終了時に確実にロックを外してほしい)

その他
koki-h
flock

その他
w1234567
15年前の記事かと思った

その他
ysync
ysync 「専用のシステムコールが必要とされるようなものを、それなしで実現するのは困難です。」まぁそうなんだけど。その場で自身で叩くものくらいがシェルスクリプトの守備範囲な気もするのでな。

2022年09月28日 リンク

その他
shag
shag symlink or flock は用途に依るとしか。それよか反論絶対禁止的な文体が気になる。

2022年09月28日 リンク

その他
taguch1
案外と要件に合わないんだよな。結局自分で書くことになる。今は一つのサーバで動くことがないからシェルでこういうコードを書くことはないけど。

その他
hnw
hnw djb先生のsetlock使ってたんだけどメリデメとしてはどうなんすかね...。

2022年09月28日 リンク

その他
zoidstown
"シェルスクリプトで安全にロックを行うのであれば flock コマンドを使うのが鉄板です。専用のコマンドがあるのですからそれを使いましょう。"

その他
kkobayashi
Windowsガン無視で草

その他
wwolf
正直CGI時代の古の技法だと思ってました

その他
programmablekinoko
有用

その他
new3
"古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?という問題に悩まされます。" そのためのロックファイルでは?/うちはこれベース:https://qiita.com/KurokoSin/items/0eddf05818b89b627102

その他
anepan
あと5年早く知りたかった(欲張り)

その他
arakash
二重起動防止・排他/共有ロックの実装

その他
asataken
助かる

その他
retdaisuke
"共有ロック"

その他
mas-higa
読めば読むほど mkdir や ln の優位性が感じられる

その他
snowcrush
snowcrush 記事の内容とはずれるけど、そこまで排他制御を求めるなら、そもそもシェルスクリプトで書くべきではないと思う。

2022年09月28日 リンク

その他
tettekete37564
flock の挙動は環境依存でしょ。自前で書かないのが理想だけど自前でかつ本気でやるなら rename のアトミック性を利用すると良いよ

その他
NetPenguin
いままで独自実装していた。flock、おぼえた。

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「シェルスクリプト...」が注目されています。

気持ちをシェアしよう

ツイートする

シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure y... Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シ

ブックマークしたユーザー

  • accelerk2025年06月24日 accelerk
  • funghi_seven2025年06月03日 funghi_seven
  • zaki-hmkc2024年04月24日 zaki-hmkc
  • dhrname2024年03月26日 dhrname
  • asakura-t2024年03月26日 asakura-t
  • shirokurostone2023年05月10日 shirokurostone
  • technicolor52023年03月25日 technicolor5
  • techtech05212023年03月18日 techtech0521
  • samurairodeo2022年12月23日 samurairodeo
  • akaimo32022年11月18日 akaimo3
  • ser1zw2022年10月12日 ser1zw
  • igrep2022年10月10日 igrep
  • lugecy2022年10月09日 lugecy
  • stntaku2022年10月07日 stntaku
  • AmaiSaeta2022年10月06日 AmaiSaeta
  • rochefort2022年10月06日 rochefort
  • kanu-orz2022年10月05日 kanu-orz
  • jonysand2022年10月05日 jonysand
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /