2

我需要没有 shell 的我的 linux 服务器的监控服务,我编写了一个新的 php 脚本来执行这个功能。运行后,脚本不写入服务状态。例如-如果我在终端中编写此命令-

service nginx status |awk '{print $4}

他返回给我结果:

Run...

这个脚本:

<?php
$nginx = shell_exec("service nginx status |awk '{print $4}'");
$bd = shell_exec("service mysqld status |awk '{print $4}'");
$jabber = shell_exec("service ejabberd status |awk '{print $4}'");
$cgi = shell_exec("service php-fpm status |awk '{print $4}'");
$mem = shell_exec("service memcached status |awk '{print $4}'");
echo "<b>Web-server nginx:</b> $nginx";
echo "<br>";
echo "<b>Server MySQL:</b> $bd";
echo "<br>";
echo "<b>Server Jabber Jabber:</b> $jabber";
echo "<br>";
echo "<b>Service php-fpm:</b> $cgi";
echo "<br>";
echo "<b>Service memcached:</b> $mem";
?>

如果通过 php 执行此操作,所有 '$' 函数都会返回有关服务状态的空信息。如何正确编写此脚本?请帮忙 :)

4

1 回答 1

2

使用service命令的完整路径,因为它所在的目录不在 web 服务器的 default$PATH中。

于 2013-03-31T07:51:23.123 回答