在脚本中使用/etc/init.d/httpd查找运行或未运行的httpd

时间:2011-01-12 11:01:05

标签: linux bash shell

我需要使用/etc/init.d/httpd status命令来验证它是否在shell内运行。 我不想使用pidof pgrep等 - 像

这样的东西
retval=`/etc/init.d/httpd status`
if [ $retval -eq "running" ];then echo "yes" ; else echo "no";fi

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

$?会为您提供最新返回代码的值。 E.g。

/etc/init.d/httpd status > /dev/null # ignore stdout
if [ $? -eq 0 ]; then 
    echo "yes"
else 
    echo "no"
fi

有关详细信息,请参阅http://tldp.org/LDP/abs/html/exit-status.html

答案 1 :(得分:0)

您可以直接在if声明中运行命令:

if /etc/init.d/httpd status > /dev/null
then

或者您可以检查输出字符串:

retval=$(/etc/init.d/httpd status)
if [[ $retval == *running* ]]
then

顺便说一下,-eq是一个数字测试。