【问题标题】:PHP exec command is not returning full data from Python scriptPHP exec 命令未从 Python 脚本返回完整数据
【发布时间】:2017-02-22 11:05:22
【问题描述】:

我正在通过 PHP SSH 连接到服务器,然后使用 exec 在该服务器上运行 python 程序。

如果我通过 putty 连接到该服务器并通过命令行执行相同的命令,我会得到如下结果:

评估....

正在连接....

正在检索数据....

1) 语句 1

2) 语句 2

.

.

.

N) 语句 N

Python 程序是别人写的...

当我通过 SSH php 连接时,我可以执行 $ssh->exec("ls") 并获得与服务器命令行一样正确的完整结果。但是当我尝试$ssh->exec("python myscript.py -s statement 0 0 0"); 时,我无法获得完整的结果,但我得到了一条随机线作为输出。

一般来说,如果有人遇到过同样的问题并解决了,请告诉我。

谢谢

【问题讨论】:

  • 什么乱线?你能举个例子吗?
  • 很抱歉我无法显示输出。但考虑将 23) 语句 23 作为输出。但是你应该有问题的输出

标签: php python ssh centos exec


【解决方案1】:

可能是输出缓冲造成的。尝试在 Python 命令中添加 -u 选项 - 这会强制 stdout、stdin 和 stderr 无缓冲。

【讨论】:

  • 这一行在哪里? $ssh->exec("python myscript.py -s 语句 0 0 0");
  • 还有一点我想问的是:如果我通过你的方法实现输出,那么正确架构输出的方法是什么?像json还是xml?
  • python之后添加-u$ssh->exec("python -u myscript.py -s statement 0 0 0")
  • 正确的架构?没有任何细节很难说。两者都有它的位置,但如果代码已经写好了,我就用那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 2016-11-30
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多