I needed this information yesterday, as I was trying to use SSH from one machine to start a shell script running in the background on another.
You’re probably using the OpenSSH server, and started a background process on the server which you intended to continue after logging out of the SSH session. Fix: redirect the background process stdin/stdout/stderr streams (e.g. to files, or /dev/null if you don’t care about them).
Works perfectly. So, not this:
ssh remotehost "script.sh &"
ssh remotehost "nohup script.sh < /dev/null >script.out 2>script.err &"
This is also needed for pssh.
pssh -h remotehosts.txt "nohup script.sh < /dev/null >script.out 2>script.err &"