Forum: PC Hard- und Software Linux, Programm im Hintergrund, Ausgabe anschauen


von funky (Gast)


Lesenswert?

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 ;)

von Christoph S. (mixer) Benutzerseite


Lesenswert?

schreib das ganze doch in ein log-file

von Daniel -. (root)


Lesenswert?

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

von funky (Gast)


Lesenswert?

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?

von parttimetux (Gast)


Lesenswert?

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/

von g457 (Gast)


Lesenswert?

> 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

von R. M. (rmax)


Lesenswert?

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

von Lukas K. (carrotindustries)


Lesenswert?

R. Max schrieb:
> Ein inet.d gibt es nich
Gemeint war wahrscheinlich der Superserver inetd

von R. M. (rmax)


Lesenswert?

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.

von faustian (Gast)


Lesenswert?

init.d oder inetd?

Im ersteren Fall: screen -d -m

von funky (Gast)


Lesenswert?

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!

von jhgjh (Gast)


Lesenswert?

funky schrieb:
> oha, also ich meinte /etc/inet.d

Ist immer noch falsch, entweder inetd oder /etc/init.d

Gast

von faustian (Gast)


Lesenswert?

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 
...

von faustian (Gast)


Lesenswert?

ala run-parts, nicht mit run-parts ;)

von A. B. (funky)


Lesenswert?

arg, ich meinte natürlich init.d
hab mich verschrieben bzw "verdacht" ;)

von faustian (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.