これが私のスクリプトの外観です。リモートサーバーでアプリケーションを起動し、上部からプロセスを表示できるため、機能しますが、スクリプトが完了するとプロセスは消えます。このようなリモートサーバーでプロセスを無期限の実行状態に保つ方法が必要です。この方法では、リモートサーバーでコマンドを実行できます。リモートサーバーでプロセスを開始するスクリプトを実行しようとした場合にのみ問題が発生します。
#!/bin/bash
for HOST in $(cat servers.txt); do
ssh user@$HOST nohup /opt/app.sh
done
#
答え1
screen
リモートホストで次を使用します。
for host in $(cat hostlist.txt); do
ssh user@${host} 'screen -dmS MyProcess /path/to/job.sh'
done
答え2
使用を検討してくださいパフパフまたはGNUパラレルリモートコンピュータでタスクを実行します。
スクリプトが使用するすべてのリモートシステムで実行することを検討してください。batch
またはat
。
だからあなたは実行することができますpssh -H host1 -H host2 batch -f remotescript.sh
たぶん、このような分散ビルド自動化システムがあるかもしれません。アイスクリーム役に立つかもしれません。