Hi, ich starte ein Programm per inet.d welches dann im Hintergrund ausgeführt wird. Gibt es eine Möglichkeit, die Textausgabe dieses Programmes zu sehen? Das wäre zum Debuggen manchmal ganz nützlich. Im Programm werden einfach Statusmeldungen per printf ausgegeben. Wo landen die denn in diesem Fall? Vielen Dank für Erleuchtung ;)
egal ob ein Programm im Hintergrund läuft oder nicht, es hat sein stdout. Leite stdout um. Wenn nötig, lass einen Skript dein Programm starten. Im Skript machst du halt: #!/bin/env bash myprog > mylog
ok, dann muss ich das aber von vorherein mit umgeleiteter standardausgabe starten, oder? ich wollte mich ja einfach in die ausgabe des laufenden programmes einklinken. aber das geht wohl nicht?
funky schrieb: > ich wollte mich ja einfach in die ausgabe des laufenden programmes > einklinken. aber das geht wohl nicht? Mmh, über den GDB evtl. ? Siehe: http://etbe.coker.com.au/2008/02/27/redirecting-output-from-a-running-process/
> ich starte ein Programm per inet.d welches dann im Hintergrund > ausgeführt wird. Das klingt nach *?n?x. > Gibt es eine Möglichkeit, die Textausgabe dieses Programmes zu sehen? Ja. Die üblichen Verdächtigen für solche Vorhaben sind.. - /var/log/debug - /var/log/daemon.log - /var/log/messages - /var/log/mein/eigenes.log - eine gaanzeiegene Logdatei, die nicht da liegt, wo sie eigentlich hingehört. Die Ausgaben in den Dateien kannst dann problemlos mit 'tail -F $file' verfolgen. HTH
funky schrieb: > ich starte ein Programm per inet.d welches dann im Hintergrund > ausgeführt wird. Ein inet.d gibt es nicht, nur ein /etc/init.d für Startskripte und einen inetd, um (vor allem kleinere) Netzwerkdienste bei Bedarf zu starten. > Gibt es eine Möglichkeit, die Textausgabe dieses Programmes zu sehen? Der übliche Weg ist, das Programm so zu schreiben, daß es die Debug-Ausgaben entweder an den syslog schickt (man 3 syslog) oder eine eigene Logdatei verwendet. Das oben vorgeschlagene Umleiten der Standardausgabe geht im Falle von inetd nicht, weil ein derart gestartetes Programm die Standardein- und Ausgebe zur Kommunikation mit der Gegenstelle verwendet. Außerdem sollte ggf. nicht nur die Standardausgabe, sondern vor allem auch die Standardfehlerausgabe (stderr) umgeleitet werden, also: myprog > mylog 2>&1
Luk4s K. schrieb: > R. Max schrieb: >> Ein inet.d gibt es nich > Gemeint war wahrscheinlich der Superserver inetd Genau die Frage habe ich dem OP doch in der zweiten Hälfte des Satzes gestellt — nicht gelesen? Es könnte nämlich genausogut auch (etc)init.d gemeint gewesen sein, was meine Glaskugel sogar für wahrscheinlicher hält.
init.d oder inetd? Im ersteren Fall: screen -d -m
oha, also ich meinte /etc/inet.d bin noch nicht so der Linuxkenner. Von daher dachte ich es wäre eindeutig ;) sorry ich probier mal rum welche der möglichkeiten für mich funktioniert danke erstmal!
funky schrieb: > oha, also ich meinte /etc/inet.d Ist immer noch falsch, entweder inetd oder /etc/init.d Gast
Vor allem sind beides - sehr unterschiedliche - Mechanismen mit denen man Programme starten kann, daher ist das wirklich nicht eindeutig; inet.d koennte auch eine per run-parts aufgesplittete inetd.conf sein ...
arg, ich meinte natürlich init.d hab mich verschrieben bzw "verdacht" ;)
Dann probier das mit dem screen aus, komfortabler gehts nicht :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.