setsid: Keep Linux / UNIX program running while you logs out

Posted on in Categories Debian Linux, Sys admin, Tip of the day last updated October 16, 2007

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:
ssh [email protected]
setsid ~/scripts/mirror.site
logout

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.

nohup Execute Commands After You Exit From a Shell Prompt

Posted on in Categories CentOS, Debian Linux, FreeBSD, Gentoo Linux, GNU/Open source, Howto, Linux, Linux desktop, Networking, RedHat/Fedora Linux, Shell scripting, Solaris, Suse Linux, Tips, Tuning, UNIX last updated January 4, 2006

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?