1つの端末(サーバー)でスクリプトを実行し、2番目の端末(ユーザー)でjarファイルを同時に実行する必要があるため、ミリ秒が重要です。可能ですか?ありがとう
ベストアンサー1
ファイルロックを使用すると、非常に簡単にこれを行うことができます。
次の内容で2つのスクリプトを作成します。まず、端末Aスクリプトを実行してからBを実行します。
ターミナルA:
touch /tmp/lockfile
flock -x /tmp/lockfile read -p 'press enter to begin'
command_a
ターミナルB:
flock -x /tmp/lockfile true
command_b
Enter開始する準備ができたら、ターミナルAを押します。
どのように機能するかは、最初のロックがflock
排他ロックを取得して/tmp/lockfile
を押すまでそのロックを保持することですEnter。 2回flock
目も排他的ロックを獲得しようとしますが、すでにロックがかかっていてブロックされます。 1 番目がflock
ロックを解除するとすぐに 2 番目が実行され、/bin/true
すぐに返されるので、コマンドは続行されます。
はい、これはcommand_a
はるかに前に始まるという意味ですcommand_b
。しかし、シェルスクリプトではとにかくこのような遅延が避けられないので問題にはなりません。
Linuxの好みに応じて/bin/read
。flock ... bash -c "read -p 'press enter to begin'"