From nobody Sun Jun 09 18:00:17 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vy3N00w7jz5N6V9 for ; Sun, 09 Jun 2024 18:28:16 +0000 (UTC) (envelope-from yuri@FreeBSD.org) Received: from shell1.rawbw.com (shell1.rawbw.com [198.144.192.42]) by mx1.freebsd.org (Postfix) with ESMTP id 4Vy3Mz1hrwz4jHc for ; Sun, 9 Jun 2024 18:28:15 +0000 (UTC) (envelope-from yuri@FreeBSD.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=freebsd.org (policy=none); spf=softfail (mx1.freebsd.org: 198.144.192.42 is neither permitted nor denied by domain of yuri@FreeBSD.org) smtp.mailfrom=yuri@FreeBSD.org Received: from [192.168.5.3] (c-98-42-44-116.hsd1.ca.comcast.net [98.42.44.116]) (authenticated bits=0) by shell1.rawbw.com (8.15.1/8.15.1) with ESMTPSA id 459I0IID020072 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for ; Sun, 9 Jun 2024 11:00:18 -0700 (PDT) (envelope-from yuri@FreeBSD.org) X-Authentication-Warning: shell1.rawbw.com: Host c-98-42-44-116.hsd1.ca.comcast.net [98.42.44.116] claimed to be [192.168.5.3] Content-Type: multipart/alternative; boundary="------------i9ZqUmmk0jwTY0iF0HrX18r8" Message-ID: <1e288f98-564a-488d-a98d-b7f45afac2c1@FreeBSD.org> Date: Sun, 9 Jun 2024 11:00:17 -0700 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Freebsd hackers list From: Yuri Subject: Can stdout/stderr of a running process be dynamically redirected in FreeBSD ? X-Spamd-Bar: + X-Spamd-Result: default: False [1.73 / 15.00]; VIOLATED_DIRECT_SPF(3.50)[]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.979]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; ONCE_RECEIVED(0.10)[]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : No valid SPF, No valid DKIM,none]; RCVD_NO_TLS_LAST(0.10)[]; XM_UA_NO_VERSION(0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; TO_DN_ALL(0.00)[]; ARC_NA(0.00)[]; GREYLIST(0.00)[pass,body]; RCPT_COUNT_ONE(0.00)[1]; FREEFALL_USER(0.00)[yuri]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; R_SPF_SOFTFAIL(0.00)[~all]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:7961, ipnet:198.144.192.0/23, country:US]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@FreeBSD.org]; TO_DOM_EQ_FROM_DOM(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; HAS_XAW(0.00)[] X-Rspamd-Queue-Id: 4Vy3Mz1hrwz4jHc This is a multi-part message in MIME format. --------------i9ZqUmmk0jwTY0iF0HrX18r8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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. Thanks, Yuri --------------i9ZqUmmk0jwTY0iF0HrX18r8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

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.



Thanks,

Yuri


--------------i9ZqUmmk0jwTY0iF0HrX18r8--