Chciałbym przekierować dane wyjściowe wygenerowane z aplikacji działającej w tle w systemie Linux do / dev / null.
Używam edytora tekstu Kate i wyświetla on wszystkie komunikaty debugowania na terminalu, które chciałbym przekierować do / dev / null.
Masz pomysł, jak to zrobić?
Dzięki
Odpowiedzi:
Używasz:
Jeśli powinien działać w tle, dodaj plik
&
>/dev/null 2>&1
oznacza przekierowaniestdout
do/dev/null
ANDstderr
do miejsca, którestdout
wskazuje w tym czasieJeśli chcesz
stderr
występować na konsoli istdout
przechodzisz tylko do/dev/null
, możesz użyć:W tym przypadku
stderr
jest przekierowywany dostdout
(np konsola), a potem oryginałustdout
jest przekierowywany do/dev/null
Jeśli program nie powinien się zakończyć, możesz użyć:
Bez żadnego parametru wszystkie wyjścia lądują w nohup.out
źródło
dup2()
następuje bezpośrednio po,fork()
ale przedexec*()
. Poexec*()
wykonaniu programu powłoka nie ma możliwości przekierowania wyjścia tego procesu. Popraw mnie, jeśli się mylę, ale nie wiem o powłoce, która zaimplementowała taką funkcjonalność.Będą one również przekierowywać zarówno:
chociaż podręcznik basha mówi, że pierwszy jest preferowany.
źródło