Как я могу слушать работающий процесс Linux? - PullRequest
2 голосов
/ 21 января 2012

Я выполнял задачу rake как отдельный процесс на моем сервере и печатал на STDOUT, отслеживая ход выполнения этого скрипта.

Находясь в соединении SSH, мое интернет-соединение сбрасывается.Когда я восстановил соединение с сервером, я обнаружил, что процесс все еще работает.Я хочу слушать его вывод STDOUT.У меня есть идентификатор процесса.

Как я могу это сделать?

Ответы [ 4 ]

1 голос
/ 21 января 2012

retty должен делать то, что вы хотите.http://pasky.or.cz/dev/retty/

1 голос
/ 21 января 2012

На будущее рассмотрим screen .Этот замечательный маленький инструмент может содержать большое количество виртуальных терминалов и позволяет легко переключаться с одного на другой (даже без использования мыши), но лучше всего будет, если вы отключитесь, виртуальные терминалы будут работать до тех пор, пока вы не переподключите и не восстановитесеанс экрана.

Чтобы запустить сеанс экрана:

screen

Чтобы отключить сеанс экрана специально, чтобы вы могли отключиться и оставить его включенным:

C-a C-d

Вподключите сеанс отдельного экрана

screen -dr

Это намного больше, но этого достаточно, чтобы вы начали.

0 голосов
/ 24 декабря 2014
strace  -p $pid_of_process_you_want_to_see_stdout_of 2>&1| sed -re 's%^write\(1,[[:blank:]](.*),[[:blank:]]*[0-9]+\)[[:blank:]]*=[[:blank:]]*[0-9]+%\1%g'

Украдено отсюда:

https://superuser.com/questions/473240/redirect-stdout-while-a-process-is-running-what-is-that-process-sending-to-d

0 голосов
/ 21 января 2012

У меня нет под рукой виртуальной машины Linux, чтобы проверить это, но вы можете подключиться к процессу с помощью gdb, open(2) новый файловый дескриптор для использования в качестве стандартного вывода, затем dup2(2) для fd 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...