Gdzie jest kierowany STDOUT odrzuconego programu?

11

W następstwie tego pytania chciałbym wiedzieć, gdzie disown -hjest przekierowywane STDOUT i STDERR programu, na którym uruchomiłem .

Thrawn
źródło

Odpowiedzi:

10

disownnie zmienia programów STDOUT / ERR. Będą one nadal trafiać tam, gdzie je przekierowałeś (używając >itp.). Jeśli ich nie przekierowałeś, nadal będą przechodzić do terminala, z którego uruchomiłeś program (aż do zamknięcia tego terminala, w którym to przypadku zostaną odrzucone).

Aby to zilustrować, uruchom to w terminalu:

bash -c 'while true; do sleep 1; echo hi; done' &

Spowoduje to wydrukowanie „cześć” co sekundę (i denerwuje cię strasznie ;-)). Jeśli disownprogram po uruchomieniu, „cześć” będzie po prostu kontynuowany. Musisz znaleźć PID pocisku (używając np. Ps) i zabić go, aby się zatrzymał.

Edytować:

Opierając się na komentarzach, być może naprawdę chcesz odzyskać dane wyjściowe programu po jego disownedycji i zamknięciu terminalu, w którym był uruchomiony. Wyjaśnia to następujące pytanie: Po zdalnym uruchomieniu programu tcsh ( dzięki quack quixote).

Śleske
źródło
Zgodnie z jego poprzednim pytaniem faktem jest, że zamknął ten poprzedni terminal. Jak więc może uzyskać wynik?
Gnoupi
@Gnoupi: Nie sądzę, że istnieje sposób na odzyskanie danych wyjściowych. Przynajmniej nigdy nie słyszałem o niczym.
sleske
Dzięki za komentarz Gnoupi :-) W rzeczywistości nigdzie nie można znaleźć danych wyjściowych. Będę jednak szukał :-)
Thrawn
1
to naprawdę odpowiedź: disown nic nie zmienia; musisz skonfigurować przechwytywanie lub przekierowanie na początku procesu . jeśli będziesz go później potrzebować, gdb jest twoim (jedynym) przyjacielem: superuser.com/questions/50058/...
quack quixote
@ quack - Powiedziałbym, że pytanie wymaga przeredagowania, aby podkreślić rzeczywisty przypadek użycia, a nie tylko narzędzie. W obecnej formie (skoncentrowanej na disown) jest to rzeczywiście poprawna odpowiedź. Ale z kontekstu, w poprzednim pytaniu, użytkownik chce po prostu odzyskać dane wyjściowe, w tym przypadku link jest odpowiedzią.
Gnoupi