I already wrote about nohup command, which allows you to ignore HUP (hangup) signal and keep running the command after user logged out. You can accomplish the same behavior using screen or disown command.
setsid is another program that runs a program in a new session. For example run a script called ~/scripts/mirror.site:
You can also pass argument to command or script:
setsid /usr/bin/beep-media-player '/nas/mp3/xyz.mp3'
Please note that setsid included in miscellaneous system utilities package called util-linux under Debian / Ubuntu Linux.
Here is a quick tip, if you wish to perform an unattended download of large files such as a Linux DVD ISO image file use the wget command.
Most of the time you login into remote server via ssh. If you start a shell script or command and you exit (abort remote connection), the process / command will get killed. Sometime job or command takes a long time. If you are not sure when the job will finish, then it is better to leave job running in background. But, if you log out of the system, the job will be stopped and terminated by your shell. What do you do to keep job running in the background when process gets SIGHUP?