Tak wygląda mój skrypt. To działa, ponieważ uruchamia aplikację na zdalnych serwerach i widzę procesy od góry, ale kiedy skrypt kończy procesy, umierają. Potrzebuję sposobu, aby pozostawić procesy uruchomione na tych zdalnych serwerach na czas nieokreślony. Mogę użyć tej metody do uruchamiania poleceń na zdalnych serwerach. Tylko wtedy, gdy próbuję uruchomić skrypt na zdalnym serwerze, który uruchamia procesy, w których mam problem
#!/bin/bash
for HOST in $(cat servers.txt); do
ssh user@$HOST nohup /opt/app.sh
done
#
tmux
lub,screen
aby uruchomić polecenie na zdalnym serwerze.Odpowiedzi:
Użyj
screen
na zdalnych hostach:źródło
screen
sesji; npscreen -dmS MyJob "while sleep 60; do /path/to/job.sh; done"
.Rozważ użycie pssh lub GNU równoległego do uruchamiania rzeczy na zdalnych komputerach.
Rozważ uruchomienie na każdym zdalnym komputerze swoich skryptów za pomocą
batch
lubat
.Więc możesz biegać
pssh -H host1 -H host2 batch -f remotescript.sh
Być może przydałby się również rozproszony system automatyzacji kompilacji, taki jak lody .
źródło