Date: Sun, 9 Jun 2024 12:35:25 -0600 From: Warner Losh <imp@bsdimp.com> To: Yuri <yuri@freebsd.org> Cc: Freebsd hackers list <freebsd-hackers@freebsd.org> Subject: Re: Can stdout/stderr of a running process be dynamically redirected in FreeBSD ? Message-ID: <CANCZdfq=oFk_AyzS63nBKxOy1r_eR1wV80-pZmpDqcF0SpFz6Q@mail.gmail.com> In-Reply-To: <1e288f98-564a-488d-a98d-b7f45afac2c1@FreeBSD.org> References: <1e288f98-564a-488d-a98d-b7f45afac2c1@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On Sun, Jun 9, 2024, 12:28 PM Yuri <yuri@freebsd.org> wrote: > Imagine the situation when there is a process that is running in the > terminal and periodically printing something related to its progress. > > At some point this terminal output should be replaced by a TUI in the same > terminal that would capture the original process' output and show it in its > TUI sub-window, and would also show some other info. > > > There is the project for Linux called "redirect" that does such > stdout/stderr redirection: https://github.com/jerome-pouiller/reredirect/ > > However, it uses ptrace functions that are missing in FreeBSD, like > PTRACE_POKEUSER. > > > Is it possible to perform the action like is described in the first > paragraph in some other way, given that ptrace doesn't have required > functions? > > > This function is useful in many business contexts, when users run some > long-running tools, and there is a variety of ways how results of these > tools can be displayed to the user. > Look at the snp device and watch. They are close if a tty is involved. Warner > Thanks, > > Yuri > > > [-- Attachment #2 --] <div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 9, 2024, 12:28 PM Yuri <<a href="mailto:yuri@freebsd.org" target="_blank" rel="noreferrer">yuri@freebsd.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u> <div> <p><font face="monospace">Imagine the situation when there is a process that is running in the terminal and periodically printing something related to its progress.</font></p> <p><font face="monospace">At some point this terminal output should be replaced by a TUI in the same terminal that would capture the original process' output and show it in its TUI sub-window, and would also show some other info.<br> </font></p> <p><font face="monospace"><br> </font></p> <p><font face="monospace">There is the project for Linux called "redirect" that does such stdout/stderr redirection: <a href="https://github.com/jerome-pouiller/reredirect/" rel="noreferrer noreferrer" target="_blank">https://github.com/jerome-pouiller/reredirect/</a></font></p> <p><font face="monospace">However, it uses ptrace functions that are missing in FreeBSD, like <span style="color:#000000;background-color:#ffffff">PTRACE_POKEUSER</span>.</font></p> <p><font face="monospace"><br> </font></p> <p><font face="monospace">Is it possible to perform the action like is described in the first paragraph in some other way, given that ptrace doesn't have required functions?</font></p> <p><font face="monospace"><br> </font></p> <p><font face="monospace">This function is useful in many business contexts, when users run some long-running tools, and there is a variety of ways how results of these tools can be displayed to the user.</font></p></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Look at the snp device and watch. They are close if a tty is involved.</div><div dir="auto"><br></div><div dir="auto">Warner</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div> <p><font face="monospace">Thanks,</font></p> <p><font face="monospace">Yuri</font></p> <p><font face="monospace"><br> </font></p> </div> </blockquote></div></div></div>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfq=oFk_AyzS63nBKxOy1r_eR1wV80-pZmpDqcF0SpFz6Q>
