thecoder
@thecoder
Разработчик веб-приложений и сервисов.

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

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


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

Ctrl-Z

$ bg

$ logout


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


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

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


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


UPD: после повторного логина в jobs не висит, к сожалению.
  • Вопрос задан
  • 6752 просмотра
Решения вопроса 1
3vi1_0n3
@3vi1_0n3
Вопросу 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.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@selenite
что-то вроде «progname | tee ./log-file»

screen progname. tmux progname. nohup progname.

через /proc/%/fd/ ничего не видно?
Ответ написан
@Sliver
При первой же попытке что-то вывести на разлогиненный терминал, программа завершится по SIGHUP (если, конечно, она этот сигнал специально не обрабатывает и не запущена через nohup).

Поэтому, судя по тому, что она всё ещё работает, она до сих пор ничего вывести не пыталась.
Возможно, это даст какую-то подсказку на тему того, о чём она там думает.
Ответ написан
Комментировать
StopDesign
@StopDesign
Если процесс висит в jobs, тогда fg %1 (ну или сколько-то). Если не висит, то не знаю.
Ответ написан
Комментировать
frol
@frol
Линуксоид
Если у вас есть права суперпользователя: strace -ewrite -p $PID
Ответ написан
opium
@opium
Просто люблю качественно работать
Запускайте приложения в screen
а потом ctrl+a+d
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы