gpt4 book ai didi

linux - 从已经运行的进程中获取 OutputStream

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:03 28 4
gpt4 key购买 nike

我想写入正在运行的进程(不是 Java)的标准输入。如何直接获取 Process 对象或 OutputStreamRuntime.getRuntime() 只能帮助我产生新的东西,而不是找到现有的进程。

最佳答案

这在 Linux 上看起来可行,不知道其他地方。搜索 "get stdin of running process"揭示了几个看起来很有希望的讨论:

本质上,您可以通过/proc/$pid/fd/0写入进程的第0个文件描述符。从那里,您只需打开一个指向该路径的 OutputStream

我刚刚测试了这个(不是 Java 部分,这可能很简单)并且它像宣传的那样工作:

Shell-1 $ cat

这个 block ,等待标准输入

Shell-2 $ ps aux | grep 'cat$' | awk '{ print $2 }'
1234
Shell-2 $ echo "Hello World" > /proc/1234/fd/0

现在回到 Shell-1:

Shell-1 $ cat
Hello World

请注意,这不会关闭进程的标准输入。您可以继续写入文件描述符。

关于linux - 从已经运行的进程中获取 OutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com