2

I am running linux and I am running a script/program in the background using

cmd &

This works fine on Solaris, but on my Linux box (2.6.9-55/ Red Hat), the background process stops when the originating terminal window is closed/loses connection. What do I need to change this, so that this works as it works on Solaris?

Dennis Williamson
  • 62,149
  • 16
  • 116
  • 151
weismat
  • 343
  • 3
  • 16

2 Answers2

7

if you run nohup cmd &, so the program will ignore the SIGHUP it gets when the termial closes.

Cian
  • 5,838
  • 1
  • 28
  • 40
  • This is definitely the solution that works for me. All disown seems to do is remove the process from the jobs list. – Nathan Sep 16 '10 at 17:14
6

You have to use the disown command (it may be specific to bash, not sure about it).

Example:

cmd &
disown

should do the trick.

If you want to reattach later the job to the terminal, use:

disown -h

Alternatively, you can use screen. Use it this way:

screen
cmd

Then, to go back to the terminal, hit ctrl+a, then d.

To come back to the screen, type in any terminal:

screen -r
FWH
  • 288
  • 1
  • 2