Suggerirei che sebbene "&" esegua il comando in background, quando esci dal tuo terminale viene comunque inviato SIGHUP. Potresti usare il comando disown
disown impedisce alla shell corrente di inviare un segnale HUP a ciascuno dei job specificati quando la shell corrente termina una sessione di login.
Se il processo viene omesso, viene utilizzato il processo in background avviato o interrotto più di recente.