PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash script: kehrt nicht zur console zurück



notbuu
27-09-2004, 13:33
hallo @all!

habe die SUFU schon beützt, aber leider nichts passendes gefunden.

ich habe hier ein bash start/stop script in dem ein dienst gestartet und gestoppt wird. :)

beim stoppen lande ich, so wie gehabt wieder am command prompt. beim starten jedoch bleibe ich bei einem blinkendem cursor stehen. erst wenn ich ENTER drücke bin ich wieder am command prompt.

der dienst macht beim starten ausgaben auf stdout. eigentlich bin ich ja wieder am command promt, nur schreit der dienst dann in die konsole. das ganze ist lästig, da ich das script remote aufrufe, und danach weiter dienge laufen.

ich habe mir schon ein paar dinge überlegt:
1. stdout in datei umleiten.
2. start stop per exec anwerfen, damit script weitermacht
3. exits vergessen?

jemand eine idee?

angehängt die ausgabe. man sieht, dass ich eigentlich wieder am commandpromt bin.

LogTool(): switch to Local mode
logopen: No such file or directory
LogTool(): switch to Local mode
LogServr SockBind() inet: Address already in use
LogServr() openlog inet failed
gestartet, PID: 17753
Prozess 6 gestartet, PID: 17755
Prozess 7 gestartet, PID: 17756
Prozess 8 gestartet, PID: 17757
UNIX accept 6

Appserv V1.30: === PID 17779 ===
done
:/etc/init.d # UNIX accept 10 <-----------das war der command prompt
UNIX accept 11
UNIX accept 12
UNIX accept 13
UNIX accept 14
UNIX accept 15

____hier bin ich nicht mehr am command prompt_________________

und b:

hier das script:
case "$1" in
start)
echo -n "###### Starting ######"
su - itskyr -c 'cd /home/its/itstest_ky/bg/bin ; ./itsbg10'
# Remember status and be verbose
rc_status -v

echo -n "###### Starting ######"
su - itskyr -c 'cd /home/its/itstest_ky/fg ; ./appserv -daemon -logserver &'
# Remember status and be verbose
rc_status -v

;;
stop)
echo -n "###### Shutting down ######"
su - itskyr -c 'cd /home/its/itstest_ky/bg/bin ; ./itsbg10 -shut'
# Remember status and be verbose
rc_status -v

echo -n "###### Shutting down ######"
su - itskyr -c 'cd /home/its/itstest_ky/fg ; ./appserv -shut'
# Remember status and be verbose
rc_status -v

;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
rc_exit
exit 0


DANKE an alle!

undefined
27-09-2004, 15:39
Bin im moment nicht auf Linux daher kann ich das ganze nur Überfliegen.
Wo Initialisierst du?
Siehe /etc/init.d/skeleton das ist die Vorlagen Datei.
PS: Bitte verwende die Code tags damit man dein Script besser lesen kann.
mfg undefined

Navy2k
28-09-2004, 03:29
Hi,

ich denke das folgende Zeile das Problem ist:

su - itskyr -c 'cd /home/its/itstest_ky/fg ; ./appserv -daemon -logserver &'

& weist ja an appserv im Hintergrund auszuführen und wenn appserv noch
läuft wärend das script schon beendet ist überschreiben die Ausgaben deine
Konsole. Probiers mal ohne &

mfg Navy

notbuu
28-09-2004, 06:16
danke werde ich versuchen!

lg