执行命令给顶:tty get失败

时间:2018-07-09 15:41:01

标签: php ssh centos

执行以下所示的行时遇到问题。

sudo /usr/bin/env TERM=xterm /usr/bin/php /home/folder/folder/script.php -b val -a 2018-07-01

它给我一个错误top: failed tty get。当我尝试使用php -f时,它给了我另一个类似于php --help的问题。

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


        )

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

1 个答案:

答案 0 :(得分:2)

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

在某些需要在PHP脚本中使用终端的配置中,它似乎正在尝试“ top”运行。

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

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

print_r($out);

调用
/usr/bin/php /home/folder/folder/script.php

有两种解决方案:

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

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

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

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

print_r($out);

调用
/usr/bin/php /home/folder/folder/script.php