Запустил некую программу на несколько суток, которая изредка выводит в стандартный вывод сообщения. Потом сделал
Ctrl-Z
$ bg
$ logout
На следующий день опять залогинился и вижу программу в списке процессов. Все еще работает, зараза.
Можно ли прицепить обратно вывод программы в консоль/увидеть ее вывод?
Если да, то как?
PS/ я понимаю, что если бы заранее сделать что-то вроде «progname | tee ./log-file», то этого вопроса можно было бы избежать, но процесс прерывать нельзя.
UPD: после повторного логина в jobs не висит, к сожалению.
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.
Спасибо! Это именно то, что искал. Есть в ubuntu и действительно работает. Важные длительные операции теперь только через screen, но появилась страховка.
При первой же попытке что-то вывести на разлогиненный терминал, программа завершится по SIGHUP (если, конечно, она этот сигнал специально не обрабатывает и не запущена через nohup).
Поэтому, судя по тому, что она всё ещё работает, она до сих пор ничего вывести не пыталась.
Возможно, это даст какую-то подсказку на тему того, о чём она там думает.
Задним числом понятно что набирать. Даже без screen, стоило всего лишь отправить вывод в файл.
Ситуация произошла из за того, что коллега набрал команду по обработке массива файлов и отлогинился. Она там что-то делает, но стадия завершения непонятна. То ли еще сутки, то ли еще неделю. :(
hint:
При первой же попытке что-то вывести на разлогиненный терминал, программа завершится по SIGHUP (если, конечно, она этот сигнал специально не обрабатывает и не запущена через nohup).
Поэтому, судя по тому, что она всё ещё работает, она до сих пор ничего вывести не пыталась.
Возможно, это даст какую-то подсказку на тему того, о чём она там думает.