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)
我知道程序正在获取命令但不执行它.我怀疑这是因为我没有按下输入,可能命令行期待这个.有人可以告诉我如何使用这个错误或更好的选择吗?
你不能那样做。/ proc / fd / 0通常不是可以写入并提供进程输入的管道。
您需要做的是使用来自管道(或套接字等)的stdin调用该过程,以便您可以向其中写入内容。
命名管道可以在这里工作(参见mknod(1)或mkfifo(3))。
否则,您将需要一个位于其前面的控制程序,并使用一对管道与之对话。