
Running bash commands in the background properly - felixmc
http://felixmilea.com/2014/12/running-bash-commands-background-properly/
======
Too
I found 'screen' to be pretty handy for running scripts in the background.
Then you can also reattach later to look at stdout as it's running.

~~~
chinpokomon
Screen or tmux. I tend to prefer tmux, but the both have this ability. I'm
actuality surprised that there isn't a more elegant choice other than
redirecting stdout and stderr to /dev/null where you can fork jobs to a
background and reattach later to see the tty. Is there a shell that has a job
queue that can be accessed from any number of shells?

~~~
ordinary
There's this for attaching a running program to your terminal when it is not
started in screen:
[https://github.com/nelhage/reptyr](https://github.com/nelhage/reptyr)

------
xyzzy_plugh
Understanding whether background jobs get killed (via SIGHUP) or orphaned is
not obvious without reading about the huponexit shopt. I've found some recent
distros to not enable huponexit by default for login shells, and so this isn't
always an issue.

More importantly, understanding how your jobs behave when your SSH session is
killed can be a huge timesaver.

------
pjbrunet
The random shell output from "background" apps never bothered me that much ;-)
Crunchbang you can just press F2 and get auto-complete and launch commands
with no shell output. Ubuntu has something similar. If you have terminator,
just split the pane if you need a fresh one, or drag the terminal to another
workspace and it's out of the way. Also tmux has ^bd to "detach" I think.

------
0942v8653
Wouldn't it be better to simply do

    
    
        "$@" "${FD[@]" &
    

And also remember to

    
    
        alias ds='ds '
    

to enable alias expansion.

~~~
felixmc
would you mind explaining why that might be better?

~~~
0942v8653
It avoids a call to eval, which is always good. It's also a bit simpler.

------
plicense
Added to /bin/sh

