非root执行php不输出,php-通过shell执行命令后不返回输出

在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值