代码之家  ›  专栏  ›  技术社区  ›  RandyMorris

使用/proc向进程发送命令

  •  5
  • RandyMorris  · 技术社区  · 15 年前

    我有一个在ubuntu服务器上作为进程运行的应用程序。此应用程序具有命令行gui,允许我键入命令,然后按enter键,命令将运行。我可以编写确定进程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 回复  |  直到 12 年前
        1
  •  6
  •   MarkR    15 年前

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

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

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

        2
  •  2
  •   ennuikiller    15 年前