найти httpd запущенный или не использующий /etc/init.d/httpd внутри скрипта - PullRequest
1 голос
/ 12 января 2011

Мне нужно использовать команду статуса /etc/init.d/httpd, чтобы проверить, работает ли она внутри оболочки или нет.Я не хочу использовать pidof pgrep и т. Д. - что-то вроде

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

Есть мысли?

Ответы [ 2 ]

3 голосов
/ 12 января 2011

$? даст вам значение самого последнего кода возврата.Например,

/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

0 голосов
/ 12 января 2011

Вы можете запустить вашу команду непосредственно в операторе if:

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

Или вы можете проверить строку вывода:

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

Кстати, -eq - это числовой тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...