PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : jboss shellscript gibt exit code nicht aus



tomcom
12-05-2006, 09:48
status(){
(ps aux | grep jboss/bin/run.sh | sed s/"grep jboss\/bin\/run.sh"/"-"/|
grep jboss/bin/run.sh > /dev/null) && (echo "There is an active jboss process";exit 0)||(echo "Jboss is not running";exit 1)
}
[...]
case "$1" in
start)
start
;;
status)
status
;;
[...]
exit 0


Moin, hab Suse Linux mit Jboss server.
Um ihn wie Apache auch mit /etc/init.d/jboss start zu starten, hab ich ein kleines SHELL-Scribt geschrieben.

Um zu vermeiden, dass er zweimal gestartet wird. Sollte "jboss start" "jboss status" ausführen und nur bei einem Fehlercode starten:
/etc/init.d/jboss status >/dev/null && (echo "Jboss is already running"; exit 2) ||(/opt/jboss/bin/run.sh&)

(Also nur Starten, wenn Jboss nit läuft.)

Aberirgendwie wird exit 1 nicht ausgeführt.
Kann das sein, das das in funktionen nicht möglich ist?

Hab nämlich auch das probiert: ./jboss status && echo ja || echo nein
Es kam immer "ja" als antwort, egal ob das ding lief oder nit.
Oder wäres sinnvoller das mit Perl/Phyton/Ruby zu realisieren.
(Kenne keine der Sprachen, aber Perl scheint mir PHP ziemlich ählich zu sein)


Gruß Thomas

sagi
12-05-2006, 18:42
Deine Prüfung ist ja auch immer positiv, da ja in der Pipe kein Fehler entsteht. Der Unterschied ist ja nur in der Ausgabe, diese wird allerdings verworfen. Es gibt also keinen Unterschied ob nun der Prozess existiert oder nicht (oder öfter)

mfg
c.