2009-09-21 12 views
0

Nous avons un démon Linux en c et un script bash pour le démarrer. Le démon ne démarre parfois pas à cause d'erreurs de fichier de configuration, mais le script indique que le démon a été démarré avec succès. Un extrait du script est montré ci-dessous, quelqu'un pourrait-il me dire ce qui ne va pas avec le script?Comment indiquer l'état d'un démon Linux

... 
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 
;; 
... 

Merci!

+1

il est vraiment difficile de comprendre ce qui ne va pas avec votre script quand on ne sait pas ce qu'il est censé faire. – Fragsworth

+0

Cela n'a rien à voir avec votre problème, mais vous pouvez faire votre redirection comme ceci: '>/dev/null 2> & 1' –

Répondre

6

Je pense qu'il n'y a rien de mal avec le script, c'est la responsabilité du démon de retourner un statut de sortie non nul si le démarrage est incorrect et selon ce que le script affichera le message (ce que je pense)

+1

' sudo' et 'env' préservent le code de sortie, donc c'est probablement le démon lui-même qui ne définit pas le bon code. –

0

Vous pouvez ajouter la ligne suivante dans votre script pour obtenir le statut en cours d'exécution de votre 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 
Questions connexes