2009-09-21 4 views
0

У нас есть Linux Daemon в c и скрипт bash, чтобы запустить его. Демон иногда не запускается из-за некоторых ошибок файла конфигурации, но сценарий сообщает, что демон был успешно запущен. Фрагмент сценария показан ниже, может ли кто-нибудь сказать мне, что не так со сценарием?Как рассказать о статусе Linux Daemon

... 
case "$1" in 
start) 
echo -n "Starting Demo Daemon: " 
sudo -u demouser env DEMO_HOME=$DEMO_HOME /usr/local/demouser/bin/democtl startup > /dev/null 2> /dev/null 
if [ "$?" = "0" ]; then 
    echo_success 
else 
    echo_failure 
fi 
echo 
;; 
... 

Спасибо!

+1

это действительно трудно понять, что случилось с вашим сценарием, когда мы понятия не имеем, что это должен делать. – Fragsworth

+0

Это не имеет ничего общего с вашей проблемой, но вы можете сделать свой переадресацию следующим образом: '>/dev/null 2> & 1' –

ответ

6

Я чувствую, что в скрипте нет ничего плохого, это ответная реакция демона на возврат не нулевого статуса выхода, если он не запускался должным образом, и на основе того, что скрипт отобразит сообщение. (Что, я думаю, это так)

+1

Оба' sudo' и 'env' сохраняют код выхода, поэтому, вероятно, это действительно сам демон который не устанавливает правильный код. –

0

Вы можете добавить следующую строку в скрипт, чтобы получить текущий статус вашего Linux Daemon

status=`ps -aef |grep "\/usr\/local\/demouser\/bin\/democtl" |grep -v grep|wc -l` 
if [ "$status" = "1" ]; then 
    echo_success 
else 
    echo_failure 
fi