www.mikrocontroller.net

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


Autor: funky (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schreib das ganze doch in ein log-file

Autor: Daniel -------- (root)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: funky (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: parttimetux (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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-ou...

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lukas K. (carrotindustries)
Datum:

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

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
init.d oder inetd?

Im ersteren Fall: screen -d -m

Autor: funky (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: jhgjh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
funky schrieb:
> oha, also ich meinte /etc/inet.d

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

Gast

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 
...

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ala run-parts, nicht mit run-parts ;)

Autor: A. B. (funky)
Datum:

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

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann probier das mit dem screen aus, komfortabler gehts nicht :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.