Сведения о вопросе

FUTER

21:06, 1st October, 2020

Теги

Linux   bash    

Linux: прицепить обратно консоль к процессу?

Просмотров: 303   Ответов: 6

Дело было из под ssh в bash.


Запустил некую программу на несколько суток, которая изредка выводит в стандартный вывод сообщения. Потом сделал

Ctrl-Z

$ bg

$ logout


На следующий день опять залогинился и вижу программу в списке процессов. Все еще работает, зараза.


Можно ли прицепить обратно вывод программы в консоль/увидеть ее вывод?

Если да, то как?


PS/ я понимаю, что если бы заранее сделать что-то вроде «progname | tee ./log-file», то этого вопроса можно было бы избежать, но процесс прерывать нельзя.


UPD: после повторного логина в jobs не висит, к сожалению.



  Сведения об ответе

davran

06:46, 26th September, 2020

Вопросу 3 года уже, тем не менее:
reptyr is a utility for taking an existing running program and
attaching it to a new terminal, and is particularly useful for moving
a long-running process into a GNU screen session.


  Сведения об ответе

screen

07:53, 27th September, 2020

что-то вроде «progname | tee ./log-file»

screen progname. tmux progname. nohup progname.

через /proc/%/fd/ ничего не видно?


  Сведения об ответе

repe

11:49, 29th September, 2020

При первой же попытке что-то вывести на разлогиненный терминал, программа завершится по SIGHUP (если, конечно, она этот сигнал специально не обрабатывает и не запущена через nohup).

Поэтому, судя по тому, что она всё ещё работает, она до сих пор ничего вывести не пыталась.
Возможно, это даст какую-то подсказку на тему того, о чём она там думает.


  Сведения об ответе

#hash

13:28, 29th September, 2020

Если процесс висит в jobs, тогда fg %1 (ну или сколько-то). Если не висит, то не знаю.


  Сведения об ответе

+-*/

06:48, 25th September, 2020

Если у вас есть права суперпользователя: strace -ewrite -p $PID


  Сведения об ответе

P_S_S

10:30, 30th September, 2020

Запускайте приложения в screen
а потом ctrl+a+d


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться