3

Я не совсем понимаю, как называется ситуация, я думаю, что вчера я закрыл сессию с фоновым процессом ipython, но я все еще могу подключиться к нему (процесс работает на веб-сервере, и я могу загрузить страницу). Могу ли я увидеть стандартный вывод процесса?

Если я запускаю ps -f -Umyname я получаю (я удалил несколько несвязанных строк, но настоящие PID и PPID):

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
16131     1767  1765  0 11:20 ?        S      0:03 sshd: myname@notty
16131     1946 21019  0 11:25 ?        Sl     1:47 /usr/bin/python -m IPython.kernel -f /home/myname/.ipython/profile_default/security/kernel-c72091
16131     3946 21019  0 14:37 pts/3    Ss+    0:00 /bin/bash
16131     4003  4001  0 14:38 ?        S      0:01 sshd: myname@pts/14
16131     4004  4003  0 14:38 pts/14   Ss     0:00 -bash
16131     6366  4004  0 16:41 pts/14   R+     0:00 ps -f Umyname
16131    21019     1  0 Jul30 ?        Sl     0:52 /usr/bin/python ipython notebook 

Я уверен, что он не запускается внутри экрана. Любая идея? Я заинтересован в PID 21019

1 ответ1

2

Вы можете использовать strace для просмотра результатов работающего процесса.

$ strace -p 21019 -e write=1,2

Приведенная выше команда будет подключаться к процессу с PID 21019 и отслеживать вызовы записи для fd 1 (stdout) и 2 (stderr).

Когда вы закончите, вы можете отправить sigint ( связать ), чтобы отделить (нажмите Ctrl + C ).

edit: есть также некоторые инструменты, которые позволяют вам присоединить запущенный процесс к новому терминалу, например reptyr, screenify, retty. Обратите внимание, что большинство из них используют strace, gdb или аналогичные инструменты трассировки для достижения этой цели, но они, как правило, дают более привлекательный результат.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .