Odpowiedzi:
Możesz uzyskać standardowe deskryptory plików tego procesu, np . stdout
:
tail -f /proc/<pid>/fd/1
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
Tutaj jest kilka opcji. Jednym z nich jest przekierowanie wyniku polecenia do pliku, a następnie użycie go tail
do przeglądania nowych wierszy dodawanych do tego pliku w czasie rzeczywistym.
Inną opcją jest uruchomienie programu wewnątrz screen
, który jest rodzajem tekstowej aplikacji terminalowej. Sesje ekranowe można dołączać i odłączać, ale nominalnie mają one być używane tylko przez tego samego użytkownika, więc jeśli chcesz je udostępnić między użytkownikami.
Jeśli chcesz, możesz śledzić proces i zobaczyć, co on robi z strace
:
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID
: Dołącz do procesu za pomocą identyfikatora PID procesu i rozpocznij śledzenie.-s SIZE
: Określ maksymalny rozmiar ciągu do wydrukowania (domyślnie jest to 32).-o filename
: Zapisz dane wyjściowe śledzenia w nazwie pliku, a nie w pliku screen (stderr).sudo
strace, aby dołączyć do procesu, i użyj, -o ~/output.txt
aby plik pozostał w folderze domowym.
Możesz użyć poniższych poleceń, aby dołączyć działający proces do innego terminala:
retty
(Strona podręcznika : retty )reptyr
screen
Przykład:
screen -S PID
retty $(pgrep PID)
reptyr PID
sudo apt-get install retty
ale istnieje kilka ograniczeń dotyczących retty. Sprawdź stronę podręcznika wymienioną w odpowiedzi.