Re: possible bash bug bringing job. to foreground
On Sat, Feb 17, 2024, 20:54 Greg Wooledge wrote: > On Sat, Feb 17, 2024 at 07:41:43PM +, John Larew wrote: > > After further examination, the examples with "fg $$" and "fg $!" clearly > do not bring the subshell into the foreground, as they are evaluated prior > to the subshells background execution. > > I'm trying to bring the subshell to the foreground to perform an exit, > after a delay. > > Ultimately, it will be used as part of a terminal emulator inactivity > timeout. > > Bash already has a TMOUT variable which will cause an interactive shell > to exit after a specified length of inactivity. Is that sufficient? > If not, how does your desired solution need to differ from TMOUT? > i never heard of TMOUT before , too >
Re: possible bash bug bringing job. to foreground
I was unaware of TMOUT. Now I have a backup as well. Thanks for tolerating my inexperience. On Sat, Feb 17, 2024 at 2:54 PM, Greg Wooledge wrote: On Sat, Feb 17, 2024 at 07:41:43PM +, John Larew wrote: > After further examination, the examples with "fg $$" and "fg $!" clearly do > not bring the subshell into the foreground, as they are evaluated prior to > the subshells background execution. > I'm trying to bring the subshell to the foreground to perform an exit, after > a delay. > Ultimately, it will be used as part of a terminal emulator inactivity timeout. Bash already has a TMOUT variable which will cause an interactive shell to exit after a specified length of inactivity. Is that sufficient? If not, how does your desired solution need to differ from TMOUT?
Re: possible bash bug bringing job. to foreground
On Sat, Feb 17, 2024 at 07:41:43PM +, John Larew wrote: > After further examination, the examples with "fg $$" and "fg $!" clearly do > not bring the subshell into the foreground, as they are evaluated prior to > the subshells background execution. > I'm trying to bring the subshell to the foreground to perform an exit, after > a delay. > Ultimately, it will be used as part of a terminal emulator inactivity timeout. Bash already has a TMOUT variable which will cause an interactive shell to exit after a specified length of inactivity. Is that sufficient? If not, how does your desired solution need to differ from TMOUT?
Re: possible bash bug bringing job. to foreground
After further examination, the examples with "fg $$" and "fg $!" clearly do not bring the subshell into the foreground, as they are evaluated prior to the subshells background execution. I'm trying to bring the subshell to the foreground to perform an exit, after a delay. Ultimately, it will be used as part of a terminal emulator inactivity timeout. I suspected there are advantages to exiting the emulator vs. killing the process. Clearly, I misunderstood. Thanks again.
Re: possible bash bug bringing job. to foreground
On Sat, Feb 17, 2024 at 01:30:00PM +, John Larew wrote: > Repeat-By: 1: (sleep 15s; set -m; fg %%; exit ) & 2: (sleep 15s; set -m; fg > %+; exit ) & You're using %% or %+ inside a shell where there have NOT been any background jobs created yet. The sleep 15s runs in the foreground, because it doesn't have a & after it. > Fix: (sleep 15s; set -m; kill $PPID) & Not a preferred solution; I prefer > a smaller hammer. It's not clear to me what you're trying to do in the first examples. Did you think that the subshell would somehow "take over" the terminal and become the interactive shell, after the 15 second delay? And what would that achieve, if it worked? In the "Fix" example, you're killing the main shell's parent, which is most likely a terminal emulator. Did you want to kill the main shell instead of the terminal? If so, you can get its PID with the $$ variable. Even inside a subshell, $$ always refers to the main shell's PID. If you want the subshell's PID, use BASHPID instead. What exactly is it about the "Fix" example that you don't prefer? What goal are you trying to achieve?
possible bash bug bringing job. to foreground
Configuration Information [Automatically generated, do not change]:Machine: x86_64OS: linux-gnuCompiler: gccCompilation CFLAGS: -g -O2 -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -Wall uname output: Linux HP-ProBook-6450b-500GB 5.15.133.1-microsoft-standard-WSL2 #1 SMP Thu Oct 5 21:02:42 UTC 2023 x86_64 x86_64 x86_64 GNU/LinuxMachine Type: x86_64-pc-linux-gnu Bash Version: 5.1Patch Level: 16Release Status: release Description: This is an attempted portion of a larger script I am writing. All these attempts appear valid; none works. BTW, also fails on termux 0.118.0/bash v5.22.6 (HOSTTYPE=aarch64, MACHTYPE=aarch64-unknown-linux-android) Repeat-By: 1: (sleep 15s; set -m; fg %%; exit ) & 2: (sleep 15s; set -m; fg %+; exit ) & Fix: (sleep 15s; set -m; kill $PPID) & Not a preferred solution; I prefer a smaller hammer.