Как получить стандартный «потерянный» сеанс

1683
laika

Я не совсем понимаю, как называется ситуация, я думаю, что вчера я закрыл сессию с фоновым процессом 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

0

1 ответ на вопрос

1
fredrikhl

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

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

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

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

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

Я получил attach: ptrace (PTRACE_ATTACH, ...): Операция не разрешена Не удалось подключиться к процессу. Если ваш uid совпадает с uid целевого процесса, проверьте настройку / proc / sys / kernel / yama / ptrace_scope или попробуйте снова как пользователь root. Для получения дополнительной информации см. /Etc/sysctl.d/10-ptrace.conf К сожалению, у меня нет root-доступа в этой системе, но спасибо за предложение laika 9 лет назад 0
strace не может работать в докере https://github.com/moby/moby/issues/20064, чтобы отключить функции безопасности, используйте: `docker run --security-opt seccomp: unfined ...` Mithril 7 лет назад 0

Похожие вопросы