完了を待たずにリモートサーバーでbashを実行する

完了を待たずにリモートサーバーでbashを実行する

異なるサーバー上で同時に異なるスクリプトを実行したいと思います。 (+/- 2秒は問題ありません。)条件は、Cronスケジュールを介さずにマスターサーバーの呼び出しを介してスクリプトを起動することです。 SSHを試しましたが、そうした場合は、セッションを削除する前に、リモートサーバーでスクリプトの実行が完了するまで待つ必要があります。私は、スクリプトが終了するのを待たずにリモートサーバーでスクリプトを起動できる代替案を探しています。 PS - 私のユースケースでは、CLIを使用せずに外部スクリプトを使用してプライマリサーバーでスクリプトをトリガーするアプリケーションを呼び出しています。ありがとうございます。

ベストアンサー1

GNUを使用すると、システムがログアウト時にすべてのプロセスを終了しないscreen限り、サーバーへの接続を維持せずにリモート操作を実行できます具体的には、以下を使用できます。systemd

#!/bin/sh
ssh server1 screen -d -m command1
ssh server2 screen -d -m command2
# ...

各ローカルsshセッションはscreenリモートプロセスを開始した直後に終了し、リモートプロセスは実行されたコマンドが完了した直後に終了します。ssh各行の後にサフィックスを追加して並列接続を作成できます&

マニュアルからの抜粋screen(1)

-d -mscreen「分離」モードで起動します。これにより、新しいセッションが作成されますが、接続されません。これはシステム起動スクリプトに役立ちます。


1システムがsystemdを使用して設定されている場合は、それをkillUserProcesses=yes交換する必要があります。screensystemd-run --user --scope screen

おすすめ記事