<p>Thanks for the lucid and concise explanation, Paul. I'd always kind of lazily wondered about why that was. Even though it seems a bit redundant, I would appreciate one last point of clarification:</p>
<p>Termination has a very specific meaning here, right? Most of the time, when processes exit (like when I type 'exit' in my shell), they _aren't_ 'terminated', they just dispose of themselves some other way. And that, then, is why the signaling of HUP to child processes doesn't come into play in situations when 'exit' is called in the shell, right?</p>

<div class="gmail_quote">On Jan 30, 2013 10:08 AM, "Paul Mooring" <<a href="mailto:paul@opscode.com">paul@opscode.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>
<div>
<div>Using & specifically backgrounds the process so the shell is free to do other things, but the process is still a child of the current shell.  You can prove this to yourself by running:</div>
<div><br>
</div>
<div>    # print the shell's PID</div>
<div>    echo $$</div>
<div>    # background a process</div>
<div>    sleep 25 &</div>
<div>    # look at the sleep process's parent PID</div>
<div>    ps -ef |grep sleep</div>
<div><br>
</div>
<div>The 'nohup' command tells the process to ignore SIGHUP, I don't believe this backgrounds the process so your shell is still locked while waiting on the process to finish.  However when the parent shell is closed the HUP signal is sent to end it's child
 processes, so `nohup some_cmd` prevents the child from being killed along with the parent.  For this reason you will often see nohup used with backgrounded processes:</div>
<div><br>
</div>
<div>    nohup sleep 25 &</div>
<div><br>
</div>
<div>The final result is a process that doesn't lock up your shell and doesn't end when it's parent (your shell) is terminated.</div>
<div><br>
</div>
<div>
<div>
<div>-- </div>
<div>
<div style="font-family:Consolas;font-size:medium">Paul Mooring</div>
<div style="font-family:Consolas;font-size:medium">Systems Engineer and Customer Advocate</div>
<div style="font-family:Consolas;font-size:medium"><br>
</div>
<div style="font-family:Consolas;font-size:medium"><a href="http://www.opscode.com" target="_blank">www.opscode.com</a></div>
</div>
</div>
</div>
</div>
</div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Patrick Callahan <<a href="mailto:patrick.pxc.c@gmail.com" target="_blank">patrick.pxc.c@gmail.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org" target="_blank">plug-discuss@lists.phxlinux.org</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, January 30, 2013 4:26 AM<br>
<span style="font-weight:bold">To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org" target="_blank">plug-discuss@lists.phxlinux.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: command line question<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">
<div>Behavior is different if you close the terminal emulator by calling 'exit' from within the session inside it than if you click the x in the corner or close the tab in Konsole. Without using something like nohup, even things launched in the background are
 usually killed by clicking closing a terminal emulator from the outside. They stay open if you just log out of the session (at which point most terminal emulators just close themselves anyway).<br>
<br>
Using nohup fixes this weirdness. It doesn't occur with processes that truly 'detach' themselves from the terminal, like those running inside screen and tmux sessions. I think this has something to do with the fact that closing a terminal emulator from the
 GUI is more like killing the session than asking it to close, either backgrounded processes still associated with that (p)tty can't cope with that, or they count as 'child' processes and so they are implicated to and also receive whichever signal is used to
 kill the terminal session.<br>
<br>
</div>
Someone who really knows things about Unix shells can probably better explain the real mechanism of action here, but anyway, the behavior is different depending upon how the terminal emulator is closed.<br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Tue, Jan 29, 2013 at 5:13 PM, Paul Mooring <span dir="ltr">
<<a href="mailto:paul@opscode.com" target="_blank">paul@opscode.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I did not know '&>' was a thing, thanks Kevin and Hans!<br>
<span><font color="#888888">--<br>
Paul Mooring<br>
Systems Engineer and Customer Advocate<br>
<br>
<a href="http://www.opscode.com" target="_blank">www.opscode.com</a><br>
</font></span>
<div>
<div><br>
<br>
<br>
<br>
<br>
<br>
On 1/29/13 4:18 PM, "der.hans" <<a href="mailto:PLUGd@LuftHans.com" target="_blank">PLUGd@LuftHans.com</a>> wrote:<br>
<br>
>Am 29. Jan, 2013 schwätzte Kevin Fries so:<br>
><br>
>moin moin Kevin,<br>
><br>
>> I am surprised nobody gave this answer, at least as far as I saw:<br>
>><br>
>>   $ /path/to/command &> /dev/null<br>
><br>
>A couple of us did, except we spelled it correctly :)<br>
><br>
>'&>/dev/null' is a bashism for '>/dev/null 2>&1'. There's nothing wrong<br>
>with it for bash scripting, but I find the latter to be easier to read,<br>
>far more common and more portable, so that's what I use for teaching and<br>
>giving answers on mailing lists.<br>
><br>
>In a bash only environment, either is fine, but when working with other<br>
>Bourne shell derivatives your syntax might not work. It might work in<br>
>zsh, but I'm pretty certain it isn't allowed in POSIX shell or ksh and it<br>
>definitely isn't in the original Bourne shell.<br>
><br>
>A really cool feature of a good toolset is there is more than one way to<br>
>do it :).<br>
><br>
>ciao,<br>
><br>
>der.hans<br>
><br>
>> Kevin<br>
>> On Jan 29, 2013 3:27 PM, "Matt Graham" <<a href="mailto:danceswithcrows@usa.net" target="_blank">danceswithcrows@usa.net</a>> wrote:<br>
>><br>
>>> From: <a href="mailto:joe@actionline.com" target="_blank">joe@actionline.com</a><br>
>>>> I still can't get either to work.<br>
>>>> James: gwenview filename.jpg > /dev/null 2>&1 &<br>
>>>> Hans:  gwenview filename.jpg 2>/dev/null &<br>
>>>><br>
>>>> Both examples work to cause gwenview to open filename.jpg without<br>
>>>> any error messages. However, when I close the terminal window,<br>
>>>> gwenview also closes.  What am I doing wrong?<br>
>>><br>
>>> To stop a process from dying when its parent tty dies, you probably<br>
>>>want<br>
>>> nohup.  "nohup gwenview filename.jpg > /dev/null 2>&1 &" .  The<br>
>>> xterm/konsole<br>
>>> will still be there, though you can then manually close it.<br>
>>><br>
>>> If this approach *did* automagically close the xterm, it'd be<br>
>>>functionally<br>
>>> equivalent to just starting gwenview from the mini-commandline....<br>
>>><br>
>>> --<br>
>>> Matt G / Dances With Crows<br>
>>> The Crow202 Blog:  <a href="http://crow202.org/wordpress/" target="_blank">http://crow202.org/wordpress/</a><br>
>>> There is no Darkness in Eternity/But only Light too dim for us to see<br>
>>><br>
>>> ---------------------------------------------------<br>
>>> PLUG-discuss mailing list - <a href="mailto:PLUG-discuss@lists.phxlinux.org" target="_blank">
PLUG-discuss@lists.phxlinux.org</a><br>
>>> To subscribe, unsubscribe, or to change your mail settings:<br>
>>> <a href="http://lists.phxlinux.org/mailman/listinfo/plug-discuss" target="_blank">
http://lists.phxlinux.org/mailman/listinfo/plug-discuss</a><br>
>>><br>
>><br>
><br>
>--<br>
>#  <a href="http://www.LuftHans.com/" target="_blank">http://www.LuftHans.com/</a>        <a href="http://www.LuftHans.com/Classes/" target="_blank">http://www.LuftHans.com/Classes/</a><br>
>#  When I work, I work hard. When I play, I play hard.<br>
>#  When I sit, I sleep. - Embe Kugler<br>
<br>
<br>
---------------------------------------------------<br>
PLUG-discuss mailing list - <a href="mailto:PLUG-discuss@lists.phxlinux.org" target="_blank">PLUG-discuss@lists.phxlinux.org</a><br>
To subscribe, unsubscribe, or to change your mail settings:<br>
<a href="http://lists.phxlinux.org/mailman/listinfo/plug-discuss" target="_blank">http://lists.phxlinux.org/mailman/listinfo/plug-discuss</a><br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</span>
</div>

<br>---------------------------------------------------<br>
PLUG-discuss mailing list - <a href="mailto:PLUG-discuss@lists.phxlinux.org">PLUG-discuss@lists.phxlinux.org</a><br>
To subscribe, unsubscribe, or to change your mail settings:<br>
<a href="http://lists.phxlinux.org/mailman/listinfo/plug-discuss" target="_blank">http://lists.phxlinux.org/mailman/listinfo/plug-discuss</a><br></blockquote></div>