異なるサーバー上で同時に異なるスクリプトを実行したいと思います。 (+/- 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 -m
screen
「分離」モードで起動します。これにより、新しいセッションが作成されますが、接続されません。これはシステム起動スクリプトに役立ちます。
1システムがsystemd
を使用して設定されている場合は、それをkillUserProcesses=yes
交換する必要があります。screen
systemd-run --user --scope screen