GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでコマンド実行をシリアル化するには?

flock これには本当に優れています。 flock を使用できます シェル スクリプトのラッパーで使用するか、コマンド ラインで使用するか、スクリプト自体に組み込みます。

flock の良いところ 待っている間、ビジー ループで待機しないということです。

また、常に プロセスが終了したときにロックをクリーンアップします / flock 終了します。

アトミック ファイル/ディレクトリ作成に基づくメソッドは、プロセスがクリーンアップせずに終了した場合 (またはカーネル パニックや電源障害が発生した場合) にロックアウトされる可能性があります。

flock で 、Linux カーネルがクリーンアップを行います。

マニュアルから、

(
flock -s 200  
# ... commands executed under lock ...
) 200>/var/lock/mylockfile

この形式では、シェル スクリプトで特定のコード ブロックをラップできます。

または、このように実行することもできます

/usr/bin/flock /tmp/lockfile command

無期限にブロック/待機したくない場合は、タイムアウトを指定できます:

-w  --timeout <secs>     wait for a limited amount of time

または、非ブロッキング引数を使用してください:

-n  --nonblock           fail rather than wait

Linux
  1. LinuxでSuコマンドを使用する方法

  2. Linuxコマンドのスクリプトを作成する方法

  3. Linuxでユーザーがログインする前にコマンドを実行する方法は?

  1. LinuxでDisownコマンドを使用する方法

  2. Linuxでファイルの名前を変更する方法

  3. Linux の「スクリプト」コマンドの出力をクリーンアップする方法

  1. LinuxSSコマンドの使用方法

  2. Linuxでディレクトリを削除する方法

  3. Linuxnohupコマンドの使用方法