Parece-me que você pode querer abordar o problema de forma diferente. Supondo que você esteja se conectando ao servidor remoto via SSH, você deve considerar o lançamento do processo de forma que a conexão SSH possa ser interrompida normalmente e o processo continue a ser executado. No final, seria algo como:
nohup script.sh > /dev/null 2>&1 &
Isso usa o comando nohup
para executar script.sh
de uma maneira que é imune a travamentos, redirecionando STDIN / STDOUT para o escaninho de descarte (/ dev / null) e, em seguida, fazendo o processo em segundo plano. Isso deve liberar o TTY usado para a conexão inicial e permitir que o processo continue a ser executado em segundo plano mesmo depois que a sessão (e TTY) estiver fechada.