Eu sugeriria que, embora "&" executa o comando em background, quando você sai do seu terminal ele ainda está sendo enviado SIGHUP. Você pode usar o comando rejeitar
disown prevents the current shell from sending a HUP signal to each of the given jobs when the current shell terminates a login session.
If job is omitted, the most recently started or stopped background job is used.