执行以下所示的行时遇到问题。
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执行此命令。
答案 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