Subject: Re: bug#67680: nohup is not giving immunity to SIGHUP

From: Pádraig Brady <[email-masked]>
Date: Thu, 7 Dec 2023 15:18:29 +0000

tag 67680 notabug
close 67680
stop

On 07/12/2023 08:13, Bob Hepple wrote:
> $ nohup --version
> nohup (GNU coreutils) 9.3
> $ uname -a
> Linux achar-void 6.5.12_1 #1 SMP PREEMPT_DYNAMIC Mon Nov 20 18:31:50
> UTC 2023 x86_64 GNU/Linux
> 
> This is on void, but it also behaves the same on fedora-38
> 
> I have extracted a minimal example - it looks like a stupid thing to
> do but it demonstrates the problem. A full and non-stupid script is at
> 
> https://gitlab.com/wef/dotfiles/-/blob/master/bin/fzf-launcher
> 
> Nevertheless - the following commands are run from bash in a graphical
> session. 'foot' is a terminal emulator - any terminal emulator can be
> used - I have tried mrxvt, urxvt, alacritty.
> 
> 'imv' is a simple program that opens a window. Anything else with a
> .desktop file could be used, such as 'rofi' or 'xsane'.
> 
> $ foot -e bash -c "nohup gtk-launch imv &"
> ... fails - the program imv briefly opens a window and immediately closes
> 
> $ foot -e bash -c "nohup gtk-launch imv & sleep 3"
> .... the 'imv' window shows but it is closed after 3 seconds - clearly
> the program 'imv' starts but is killed by something when the script
> terminates.
> 
> $ foot -e bash -c "trap '' HUP; nohup gtk-launch imv &"
> ... works perfectly - the 'something' that is killing imv is
> apparently the HUP signal! So why does nohup not grant immunity to
> HUP?

In the last case you're telling bash to ignore HUP,
so I suspect in the other case bash is causing the exit.
I'd look into `strace -e signal ...` to diagnose what's
happening exactly, and perhaps setsid(1) may be useful for your case.

thanks,
Pádraig