Ich möchte die von einer Hintergrundanwendung unter Linux generierte Ausgabe nach / dev / null umleiten.
Ich verwende den Kate-Texteditor und er druckt alle Debug-Meldungen auf dem Terminal, die ich nach / dev / null umleiten möchte.
Irgendeine Idee, wie es geht?
Vielen Dank
Antworten:
Sie nutzen:
Wenn es im Hintergrund ausgeführt werden soll, fügen Sie ein hinzu
&
>/dev/null 2>&1
bedeutet Weiterleitenstdout
zu/dev/null
UNDstderr
an den Ort, an demstdout
zu diesem Zeitpunkt Punkte liegenWenn Sie
stderr
auf der Konsole auftreten möchten und nurstdout
zu/dev/null
Ihnen gehen möchten , können Sie Folgendes verwenden:In diesem Fall
stderr
wird anstdout
(z. B. Ihre Konsole) umgeleitet und anschließend wird das Original anstdout
umgeleitet/dev/null
Wenn das Programm nicht beendet werden soll, können Sie Folgendes verwenden:
Ohne Parameter landen alle Ausgaben in nohup.out
quelle
dup2()
unmittelbar danach,fork()
aber vorher erfolgtexec*()
. Sobaldexec*()
das Programm ausgeführt wurde, kann die Shell die Ausgabe dieses Prozesses nicht mehr umleiten. Korrigieren Sie mich, wenn ich falsch liege, aber ich weiß nichts über eine Shell, die solche Funktionen implementiert hat.Diese leiten auch beide um:
obwohl das Bash-Handbuch besagt, dass das erste bevorzugt wird.
quelle