bash時に停止

bash時に停止

私はこのbash.shを使用して障害が発生した場合にゲームサーバーを起動して再起動します。 @rebootとして実行されます。

while true; do
./Server
done

このサーバーが停止したら、定期的に更新する必要があります。閉じるのは不可能に見えます。私が使っている他のスクリプトや言語では

if ($exists(filename.txt)) { halt }

壊れないプロセスのwhileループでは、空のファイルをプロセスディレクトリに配置でき、ファイルが存在する場合、スクリプトはスクリプトを停止し、終了した後にプロセスを再起動します。これは私にとって最も簡単な解決策のようです。この状況ではどうすればよいですか?

ベストアンサー1

それは次のとおりです。

until [ -e filename.txt ]; do
  ./Server
done

それは次のとおりです。

while [ ! -e filename.txt ]; do
  ./Server
done

Linuxを使用している場合は、次のようにすることもできます。

while true; do
  # wait for filename.txt to be removed if it's there:
  inotifywait -qe DELETE_SELF filename.txt 2> /dev/null
  ./Server
done

Serverファイルが存在する場合にのみ起動を防ぎ、ファイルが削除されたらすぐに再起動します。

マシンの管理者であれば、それを適切に保護し、必要に応じて予期しないシャットダウン時に再起動(再起動)するなどのタスクを担当するinitシステムが処理するサービスとして追加する方が合理的です。次に、編集のservice whatever stop前後に作業を実行しますstart

おすすめ記事