使用/proc将命令发送到进程 [英] sending command to process using /proc

查看:28
本文介绍了使用/proc将命令发送到进程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

我尝试了

的变体
# echo "command" > /proc/<PROCESSID>/fd/0

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

# echo -e "commandc" > /proc/<PROCESSID>/fd/0
# echo -e "15" > /proc/<PROCESSID>/fd/0

我知道程序正在获取命令,但不执行它。我怀疑这是因为我没有实际按Enter键,而命令行可能预期到这一点。有人能建议我如何错误地使用此选项或更好的选项吗?

推荐答案

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

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

命名管道可以在此工作(请参见mculd(1)或mkfio(3))。

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

这篇关于使用/proc将命令发送到进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆