2015-12-04 4 views
0

Я создал службу nohup, используя следующую команду в putty.Проверить, работает ли служба nohup или нет, используя сценарий оболочки?

nohup php /var/www/html/XYZ/sample.php & 

Эта команда выполняет файл sample.php в фоновом режиме.

Теперь мне нужен сценарий оболочки, который проверяет, работает ли эта служба или нет. В случае, если служба не работает, я хочу, чтобы этот сценарий оболочки создавал службу самостоятельно. Ниже приведен код, который я пробовал.

#!/bin/bash 
    email_to="[email protected]"; 
    export DISPLAY=:0.0 
    PIDS=`ps -aux | grep sample.php|awk '{print $2}'` 
    if [ -z "$PIDS" ]; then 
     echo "$(date) - The service is not running. Sending email to :$email_to" >> /var/www/html/XYZ/sample.php; 
     echo "SERVICE is not running - $(date)" | mail -s "service is not running - $(date)" $email_to 
     echo "" >> /var/www/html/XYZ/sample.php; 
     exit 1 
    else 
     echo "$(date) - Service already running. Sending email to : $email_to" >> /var/www/html/XYZ/sample.php; 
     echo "SERVICE is running - $(date)" | mail -s "SERVICE is running - $(date)" $email_to 
    fi 

, когда я исполняю файл я получаю почта как сервис работает, и как только я убить sample.php и когда я получаю запустить этот файл я получаю ту же почту «как сервис работает», но его неправильно , так может ли кто-нибудь направить меня туда, где я ошибся?

+1

Вы должны использовать правильный ["скрипт инициализации"] (http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/boot.html). –

+0

else используйте shell debug/trace 'set -vx' (' set + vx', чтобы отключить), чтобы увидеть, какие значения используются для '$ PIDS' при выполнении кода. Удачи. – shellter

ответ

0

, где я ошибся?

С ps -aux | grep sample.php, то grep находит sample.php в своем собственном процессе командной строки grep sample.php, также выход по ps. Этого можно избежать, изменив команду grep, чтобы она не содержала sample.php буквально, e. г. grep 'sample\.php' (который, кстати, предотвращает риск совпадения другого символа вместо .). Вероятно, вам также понадобится широкий выход от ps, чтобы не обрезать команду, поэтому измените приведенный выше конвейер на ps waux | grep 'sample\.php'.

 Смежные вопросы

  • Нет связанных вопросов^_^