使用/ proc发送命令进行处理

Ran*_*ris 5 linux command-line process echo

我有一个在ubuntu服务器上作为进程运行的应用程序.这个应用程序有命令行gui,允许我输入命令,然后按回车键,命令运行.我能够编写进程id的确定脚本.然后我编写以下脚本来发送命令:

# echo "command" > /proc/<PROCESSID>/fd/0
Run Code Online (Sandbox Code Playgroud)

我尝试了各种变体

# echo "command" > /proc/<PROCESSID>/fd/0

# echo -e "command\r" > /proc/<PROCESSID>/fd/0

# echo -e "command\c" > /proc/<PROCESSID>/fd/0
# echo -e "\015" > /proc/<PROCESSID>/fd/0
Run Code Online (Sandbox Code Playgroud)

我知道程序正在获取命令但不执行它.我怀疑这是因为我没有按下输入,可能命令行期待这个.有人可以告诉我如何使用这个错误或更好的选择吗?

Mar*_*rkR 5

你不能那样做。/ proc / fd / 0通常不是可以写入并提供进程输入的管道。

您需要做的是使用来自管道(或套接字等)的stdin调用该过程,以便您可以向其中写入内容。

命名管道可以在这里工作(参见mknod(1)或mkfifo(3))。

否则,您将需要一个位于其前面的控制程序,并使用一对管道与之对话。