여러 서버에 ssh를 연결하는 bash scipt를 작성하고 거기에서 애플리케이션을 시작하지만 ssh 연결이 끊어져도 종료되지 않는 스크립트를 실행하세요.

여러 서버에 ssh를 연결하는 bash scipt를 작성하고 거기에서 애플리케이션을 시작하지만 ssh 연결이 끊어져도 종료되지 않는 스크립트를 실행하세요.

이것이 내 스크립트의 모습입니다. 원격 서버에서 애플리케이션을 시작하고 상단을 통해 프로세스를 볼 수 있기 때문에 작동하지만 스크립트가 완료되면 프로세스가 사라집니다. 이러한 원격 서버에서 프로세스를 무기한 실행 상태로 유지하는 방법이 필요합니다. 이 방법을 사용하면 원격 서버에서 명령을 실행할 수 있습니다. 원격 서버에서 프로세스를 시작하는 스크립트를 실행하려고 할 때만 문제가 발생합니다.

#!/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

어쩌면 이와 같은 분산 빌드 자동화 시스템이 있을 수도 있습니다.아이스크림유용할 수도 있습니다.

관련 정보