首页 > 解决方案 > 执行命令 give top: failed tty get

问题描述

执行如下所示的此行时出现问题。

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 执行此命令。

标签: phpsshcentos

解决方案


真的可以在此处使用您的 PHP 脚本副本(根据评论中的要求)进行确认,但基于您提供的内容:

看来您正在尝试执行的操作在需要 PHP 脚本中的终端的某些配置中运行“顶部”。

/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 脚本的 shell 中。

/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

推荐阅读