Shell-Script catched exit nicht?

Bash, Shell, PHP, Python, Perl, CGI
funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Shell-Script catched exit nicht?

Post by funnydingo » 2005-09-20 11:33

Hallo zusammen,

mal ne Frage zu einem Shell-Script. Ich habe eine kleine Anwendung die im Hintergrund laufen soll. Die Anwendung ist nicht von Haus aus darauf vorbereitet. Bisher habe ich immer per Hand

Code: Select all

BIN >> log &
und
kill PID
zum starten/stoppen benutzt. Ich würde aber gerne ein kleines RC-Script nutzen. Als Vorlage habe ich mir das apachectl (1.3.33) angesehen. Leider catched das Script einen exit(x) (x > 1, also Fehler) nicht und sagt immer, das die Anwendung erfolgreich gestartet wurde.

Der Apache startet von Hause aus nur durch aufrufen des Binary. Bei meiner Anwendung ist das nicht so und für die Startsequenz habe ich

Code: Select all

if $HTTPD ; then
  echo "$0 $ARG: httpd started"
else
  echo "$0: ARG: httpd could not be started"
  ERROR=3
fi
so aufgebaut:

Code: Select all

if `$BIN >> $LOG &` ; then
  echo "started"
else
  echo "not started"
fi
Leider kommt das Script (trotz eines exit(1)) nie in den Else-Zweig. Liegt das evtl. an den ` ` die ich dort benutze?

Bin über jeden Tipp dankbar.

lg,
Funny

nils
Posts: 25
Joined: 2002-12-28 17:28
Location: bei Hannover

Re: Shell-Script catched exit nicht?

Post by nils » 2005-09-20 15:20

probiers mal mit

Code: Select all

foo=`$BIN >> $LOG &`

if $foo ; then 
  echo "started" 
else 
  echo "not started" 
fi
keine ahnung ob das so geht, hatte mal das problem, dass ich es vorher erst in ne variable hauen musste.

gruß

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: Shell-Script catched exit nicht?

Post by funnydingo » 2005-09-20 17:44

Ne, hilft leider nicht. Wenn ich direkt

Code: Select all

if $BIN ; then
Ausführe erkennt er es. Nur leider werden die Ausgaben dann ja nicht ins Log geschrieben bzw. der Prozess in den Background geschoben :-/

Was ich machen könnte: nach dem starten prüfen ob der Prozess läuft, daran erkenne ich das ja. Ich würde aber schon gerne mit den Errorlevelcodes arbeiten.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: Shell-Script catched exit nicht?

Post by funnydingo » 2005-09-21 17:40

Ich habe mir heute dazu noch mal gedanken gemacht. Das kann ja gar nicht gehen. Die Anwendung wird gestartet und das Script muss ja (um den Exit-Status zu bekommen) auf die Beendigung warten. Daher ist das ganze schwachsinn. Werde es also doch anders machen müssen. Aber danke an alle die sich Gedanken dazu gemacht haben.