umleiten der ausgabe eines childprozess

1 view
Skip to first unread message

Info-Bot

unread,
Jul 11, 2004, 1:34:01 AM7/11/04
to
Hallo Liste,

ich würde gerne die text ausgabe auf der console eines gameservers in eine
log datei umleiten.
leider erweist sich das schwieriger als es sich anhört.
Folgendes zur Problemstellung:
Der Server selber wird über ein shell script gestartet, welcher im falle
eines server absturz selbigen neu startet:

==
#!/bin/bash

if grep "dedicated_server.*1" ~/.savage/startup.cfg;
then
rm updater/updating.lock
while (/bin/true;) do
LD_LIBRARY_PATH=libs ./dedicated_server.bin
done
else
echo error meldung blabla
fi
==

das script startet also dann die *.bin datei, welche selber 2 child prozesse
startet:

==
8877 ? S 0:00 /bin/bash ./dedicated_server.sh
13702 ? R 95:49 \_ ./dedicated_server.bin
13703 ? S 0:00 \_ ./dedicated_server.bin
13704 ? R 0:30 \_ ./dedicated_server.bin
==

und da liegt wohl das eigentliche problem, da die ausgaben auf der console
wohl vom ersten oder zweiten child prozess erzeugt werden.
ich habe schonn so ziemlich jede vorstellbare kombination mit ">" , tee und
script versucht.
sowohl am shell script selber als auch an der *.bin datei innerhalb des
shell scripts.

in der baum angabe sieht man dann halt wie tee oder script an den ersten
oder zweiten prozess, sprich das shell sript oder die erste *.bin gebunden
ist und die ausgabe endet im besten fall mit:

BSDSock_ShutDown()

wo meiner vermutung nach dann einer der childprozesse die ausgabe übernimmt.

hinzu kommt noch, dass das shell script normalerweise noch mit & im
hintergrund gestartet werden soll.

aber auch den prozess im vordergrund mit screen laufen zu lassen und zu
versuchen irgendwie nachträglich mit tee oder script zu agieren hat ausser
einer blockade des terminals und einer leeren logdatei nix gebracht.

hat irgendwer von euch ne idee wie ich trotzdem mit loggen kann, was der/die
prozess(e) so von sich geben ?

--
MfG Info
Jeder Tag an dem DU cheatest
ist ein verlorener Tag
frei nach C. Chaplin


Erich Aigner

unread,
Jul 12, 2004, 12:47:27 PM7/12/04
to
Info-Bot wrote:

> hat irgendwer von euch ne idee wie ich trotzdem mit loggen kann, was
> der/die prozess(e) so von sich geben ?


Schon mal versucht das script via "nohup" zu starten?

Info-Bot

unread,
Jul 12, 2004, 10:31:02 PM7/12/04
to
Mit nohup legt er zwar ne nohup.out an, aber ebenfalls nur mit den output
des script selber.

ich habe aber ne teillösung gefunden.

mit screen -L wird alles von screen selber geloggt

gruss info

"Erich Aigner" <aig...@eunet.at> schrieb im Newsbeitrag
news:40f2c092$0$7846$91ce...@newsreader02.highway.telekom.at...

Erwin Burgstaller

unread,
Jul 13, 2004, 2:16:21 AM7/13/04
to
Erich Aigner <aig...@eunet.at> wrote:
> Info-Bot wrote:
>
>> hat irgendwer von euch ne idee wie ich trotzdem mit loggen kann, was
>> der/die prozess(e) so von sich geben ?

Wenn nicht einer der gestarteten Prozesse die Ausgabe selber verbiegt,
kommts dort raus, wo auch der Vorgänger-Prozess hinschreibt, oder wohin
die Umleitung auf diese Art angegeben worden ist:

xxx >logdatei 2>&1

> Schon mal versucht das script via "nohup" zu starten?

Und was soll das deiner Meinung nach in diesem Fall bringen?

Erwin
--
Meine Mailadresse *ist* gültig, so wie sie ist.
http://i.wuell.net

Heinrich Elsigan

unread,
Jul 13, 2004, 9:36:19 PM7/13/04
to
Was hälts du von editieren des scripts und:
> LD_LIBRARY_PATH=libs ./dedicated_server.bin >> mylogfile 2>&1

lG he
--
Heinrich Elsigan
Email for newspostings: nos...@area23.mond.at


Reply all
Reply to author
Forward
0 new messages