php - 执行命令 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 执行此命令。
解决方案
真的可以在此处使用您的 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
推荐阅读
- python - 如何将自定义数据框转换为列表?
- powerbi - 我的切片器没有过滤我的数据卡中的内容,只是我在 Power BI 中的表格?
- javascript - 使用组件反应工具提示
- handlebars.js - 如何在 Block Helper 的上下文之外修改车把模板?
- reactjs - 我无法在地图方法中分配元素字段
- react-native - RN Firebase 安卓无震动,IOS无声音+震动
- node.js - 使用 AWS Lambda 获取“MongoServerSelectionError:服务器选择在 30000 毫秒后超时”
- xamarin - 使用 XAMARIN 打开 GPS
- php - “目标类 [Modules\\Admins\\Controllers\\AdminController] 不存在。”
- ios - InAppSettingsKit 完成按钮未显示在视图控制器上