我有一个php脚本,用于检查服务是否正在运行。这是检查服务的代码。
function isClientActive() {
exec("systemctl is-active --quiet MyService", $output, $return);
return $return == 0;
}
如果我从CLI运行脚本,无论用户是否具有sudo权限,此功能都可以正常工作。但是,当我使用Web浏览器与apache用户调用此脚本时,此函数始终会返回false。因此,我在cmd的末尾添加了2>&1
,并在浏览器中打印了输出,输出显示为“ sh:systemctl:not found”。
所以我如何允许apache用户调用systemctl以获取服务状态。
问题不在于以root用户身份执行命令。它只是特定用户不可用的命令。