微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 使用命令行捕获进程启动后的STDIN / STDERR / STDOUT?

谢谢!我的用户案例:我开始了一个冗长的交互式“配置”过程(比如在’屏幕’下),然后意识到我需要总是回答’不’,直到我看到一个特定的关键字.手动执行此操作似乎浪费时间(并不是说我很容易错过关键字..)

因此,似乎我想将STDERR / STDOUT管道(副本)传递给过滤器,
并且还能够注入(控制台)进程的STDIN,
它启动后,使用命令行?有现成的解决方案吗?

以下工具似乎有所帮助.要捕获输出,请使用

strace -ewrite -p $PID

这不是那么干净(显示如下行:写(#,)),但有效!
但它是否说正确处理UTF8?

重定向输出,请执行类似的操作

printf '..input..' >/dev/pts/33

但目前尚不清楚如何找到合适的设备..

解决方法

解决了Linux(显然是Linux特定的):
reptyr -s PID

将进程附加到另一个终端和/或将其输入和输出作为管道公开.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐