Відповіді:
Ви можете отримати стандартні дескриптори файлів цього процесу, наприклад 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]
Тут є кілька варіантів. Перший - перенаправити висновок команди на файл, а потім використовувати tail
для перегляду нових рядків, які додаються до цього файлу в режимі реального часу.
Інший варіант - запустити програму всередині screen
, яка є свого роду текстовим термінальним додатком. Екранні сеанси можна приєднувати та від'єднувати, але номінально вони призначені лише тим самим користувачем, тому, якщо ви хочете поділитися ними між користувачами.
В іншому випадку, якщо ви хочете, ви можете простежити процес і побачити, що він робить strace
:
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID
: Приєднайте до процесу PID ідентифікатора процесу та починайте трасування.-s SIZE
: Вкажіть максимальний розмір рядка для друку (за замовчуванням - 32).-o filename
: Запишіть вихідний слід у назву файлу, а не на екран (stderr).sudo
strace для приєднання до процесу, і використовувати -o ~/output.txt
так, щоб файл залишився у вашій домашній папці.
Ви можете використовувати ці команди, наведені нижче, щоб приєднати запущений процес до іншого терміналу:
retty
(Сторінка людини: retty )reptyr
screen
Приклад:
screen -S PID
retty $(pgrep PID)
reptyr PID
sudo apt-get install retty
але у retty є обмеження. Ознайомтеся із довідковою сторінкою, зазначеною у відповіді.