Php 执行命令give top:tty get失败

Php 执行命令give top:tty get失败,php,ssh,centos,Php,Ssh,Centos,我在执行下面显示的这一行时遇到问题 sudo /usr/bin/env TERM=xterm /usr/bin/php /home/folder/folder/script.php -b val -a 2018-07-01 它给了我一个错误top:tty get失败。当我尝试使用php-f时,它给了我另一个类似于php的问题--help [0] => Array ( [error] => 1 [return] =>

我在执行下面显示的这一行时遇到问题

sudo /usr/bin/env TERM=xterm /usr/bin/php /home/folder/folder/script.php -b val -a 2018-07-01
它给了我一个错误
top:tty get失败
。当我尝试使用
php-f
时,它给了我另一个类似于
php的问题--help

[0] => Array
        (
            [error] => 1
            [return] =>     top: failed tty get


        )

我想要的结果是成功执行命令,而不是错误。我使用PHP脚本中的SSH执行此命令。

确实可以在此处使用PHP脚本的副本(如注释中所要求的)进行确认,但基于您提供的内容:

/home/folder/folder/script.php
<?php

exec('top -n 1 -b', $out, $error);

print_r($out);
在一些需要PHP脚本中的终端的配置中运行“top”,似乎就是您要做的事情

/home/folder/folder/script.php
<?php

exec('top -n 1 -b', $out, $error);

print_r($out);
有两种解决方案:

1) 使用上述参数(
-n1-b
)以批处理模式运行一次迭代测试Centos7。这不需要终端,而是将输出添加到数组中。这可能是你需要的。但如果仍然失败:

2) 否则,您可以指定
TERM=xterm
——看起来这是您尝试执行的操作,但您需要在exec内部,而不是在调用php脚本的shell中对其进行修改

/home/folder/folder/script.php
<?php

exec('TERM=xterm top -n 1 -b', $out, $error);

print_r($out);

查看我是如何绕过它的
top-n1-b>top-out
,top-n1-b不起作用@lawrencerone我想在顶部执行这一行而不出现这个错误“我在PHP脚本中使用SSH执行这个命令”。请将您的问题包括在执行这个命令的PHP脚本中。
/usr/bin/php /home/folder/folder/script.php