2013-03-31 53 views
2

我需要我的linux服務器沒有shell的監視服務,我寫了一個新的PHP腳本,它執行此功能。運行後,腳本不寫入服務狀態。 例如 - 如果我在終端寫這個命令 -shell_exec返回null - 監視linux服務

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,所有'$'函數返回關於服務狀態的空信息。 如何正確編寫此腳本?請幫助:)

+0

也許'service'命令不在web服務器的'$ PATH'中,請嘗試使用該命令的完整路徑。 – Barmar

+0

謝謝! 命令/etc/init.d/service狀態正常! – user2202533

回答

2

使用service命令的完整路徑,因爲它所在的目錄不在Web服務器的默認$PATH中。