nohup myprocess.out &
nohup catches the hangup signal (see
man 7 signal) while the ampersand doesn't (except the shell is confgured that way or doesn't send
SIGHUP at all).
Normally, when running a command using
& and exiting the shell afterwards, the shell will terminate the sub-command with the hangup signal (
kill -SIGHUP <pid>). This can be prevented using
nohup, as it catches the signal and ignores it so that it never reaches the actual application.
In case you're using bash, you can use the command
shopt | grep hupon to find out whether
your shell sends SIGHUP to its child processes or not. If it is off, processes won't be
terminated, as it seems to be the case for you. More information on how bash terminates
applications can be found here.
There are cases where
nohup does not work, for example when the process you start reconnects
SIGHUP signal, as it is the case here.