GNU screen
permitirá que você execute tarefas remotas sem permanecer conectado ao servidor, exceto em sistemas em que systemd
elimina todos os processos no logout 1 . Especificamente, você pode usar:
#!/bin/sh
ssh server1 screen -d -m command1
ssh server2 screen -d -m command2
# ...
Cada sessão local ssh
termina imediatamente após o lançamento do processo screen
remoto, que, por sua vez, sai assim que o comando executado termina. Você pode sufixar cada linha ssh
com &
para fazer as conexões em paralelo.
Trecho do manual, screen(1)
:
-d -m
Startscreen
in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts.
1 Se você estiver em um sistema que usa systemd
configurado com killUserProcesses=yes
, será necessário substituir screen
por systemd-run --user --scope screen
.