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

时间:2010-10-02 13:55:00

标签: linux command-line process echo

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

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

我尝试了各种

# 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

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

2 个答案:

答案 0 :(得分:5)

你做不到。 / proc / fd / 0(通常)不是您可以写入并提供进程输入的管道。

你需要做的是调用进程,其stdin来自管道(或套接字等),以便你可以将内容写入其中。

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

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

答案 1 :(得分:2)

在不知道具体细节的情况下,您可能需要:expect