内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
bash
»
script
»
22 Bash flock 2重起動防止
トレース:
bash:script:22_flock
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 22 Bash flock 2重起動防止 ====== ===== Cronで実行する場合 ===== <code> flock -n /tmp/somthing.lock something.sh </code> ==== 実行例 ==== <code| console1> $ flock -n /tmp/flock.lock sleep 360 </code> 「-n」オプションだと、実行せずに終了します。 <code| console2> $ flock -n /tmp/flock.lock echo 'Hello World.' $ </code> 「-x」オプションだと、終了を待って実行します。 300秒後に実行される <code| console2> $ flock -n /tmp/flock.lock echo 'Hello World.' $ Hello World. </code> ===== シェル内で実行する場合 ===== ファイルディスクリプタを99にして、すでに存在するかどうかでチェックする <code> #!/bin/bash exec 99>/tmp/$(basename $0 .sh).lock ## lockが存在したら終了 flock -n 99 if [ $? -ne 0 ]; then exit 1 fi ## 終わったらunlock flock -u /tmp/$(basename $0 .sh).lock </code> ===== オプション ===== <code> -s, --shared 共有ロックを取得します -x, --exclusive 排他ロックを取得します (既定値) -u, --unlock ロックを解除します -n, --nonblock 待機が必要な場合、失敗させるようにします </code> {{tag>bash flock}}
bash/script/22_flock.txt
· 最終更新: 2021/07/30 01:33 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ