php - 带有 mtr traceroute 的 PHP exec 函数等待响应
问题描述
我正在使用exec
PHP 中的函数来运行 Linuxmtr
命令(用于 traceroutes),但是当我运行它时,当我将域传递给命令时,我得到状态代码1,但是如果我传递--help
标志或--version
标志,那么我立即获得结果,并显示在我的 JSON 中。
我怎样才能让exec
函数基本上等到它返回跟踪路由的结果,因为我担心这是这里的问题?
作品:给我一个代码 0 和一个结果
$cmd = 'mtr --help';
exec($cmd, $out, $code);
作品:给我一个代码 0 和一个结果
$cmd = 'mtr --version';
exec($cmd, $out, $code);
失败:给我一个代码 1 并且没有结果
$cmd = 'mtr --json google.com';
exec($cmd, $out, $code);
失败:给我一个代码 1 并且没有结果
$cmd = 'mtr google.com';
exec($cmd, $out, $code);
如果我从命令行运行mtr
,上面所有失败的都将按预期工作,当然,traceroute 可能需要长达 30 秒才能运行,但肯定会exec
等待吗?
我该如何解决这个问题?
解决方案
推荐阅读
- php - 有没有办法将数组元素添加到 SESSION 变量中?
- xamarin.forms - FreshPageModelResolver.ResolvePageModel() 在 UWP Release 中抛出异常
- hbase - Hbase 区域始终处于过渡状态
- asp.net-mvc - 查询多张表(二)
- functional-programming - 在 Scheme 的这种应用减少中,“let”来自哪里?
- shell - 从 shell 脚本在 docker 中启动 selenium 集线器时遇到问题
- c++ - LLVM 无法将数组类型转换为 ConstantArray
- api - 如何通过 youtube api 查询 youtube 视频的版权声明
- python - 如何随机化列表以满足条件
- grails - 使用 grails 实现社交媒体登录