在Fedora 20中执行php脚本后:
echo shell_exec('which systemctl');
显示空字符串.
如果要在命令行中执行“哪个systemctl”,则会显示以下内容:
/usr/bin/which: no systemctl in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
我如何通过php接收此输出?
解决方法:
因为systemctl不在您的路径上(或不在您的系统上),所以哪个systemctl返回错误消息
/usr/bin/which: no systemctl in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
当您使用shell_exec(‘which systemctl’)在PHP中运行它时;未收集标准错误,并且标准输出为空.因此,PHP看到一个空字符串.
您可以使用以下命令获取标准错误:
shell_exec('which systemctl 2>&1');
标签:shell,fedora,linux,php
来源: https://codeday.me/bug/20191121/2051790.html