リモートホストで、3つのプログラム A 、 B 、 C を実行したいのですが、それらを異なる時間に実行したいので、 A が実行されている場合、 B と C は実行できないため、 A を実行したいときにそれを検出した場合ファイルはロックされています ロックが解除されるまで待ちます
私の考えは、次のようなプロセス間のミューテックスロックのように、これらのプログラム間でロックファイルを作成することです:
ファイルのロックが解除されている場合。次に、ファイル ./programA をロックし、ファイル fi をロック解除します。
誰かがflock
この目的に使用できると私に言った私はグーグルで検索したコードは次のようなものです: ( flock -s 200 ./program ) 200>/var/lock/mylockfile
しかし、シェルスクリプトとしての作り方がわかりません私はシェルスクリプトをtrylock.shのように作ります
#!/bin/bash
set -e
(
flock -x -w 10 200
sleep 20
) 200 > lockfile
私がそれを実行すると、私は得ました
trylock.sh: line 7: syntax error near unexpected token `200'
また、ロックタイムアウトを無期限に設定する方法
誰かがスクリプトの例を教えてもらえますか? ありがとう