Skip site navigation (1)Skip section navigation (2)
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 &lt;<a href="mailto:yuri@freebsd.org" target="_blank" rel="noreferrer">yuri@freebsd.org</a>&gt; 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&#39; 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
        &quot;redirect&quot; 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&#39;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>