Тем не менее, для вашей реальной проблемы есть еще одна вещь, которую вы можете попробовать: после запуска вашей работы из терминала, наберите фон, набрав ctrl- zи затем bg. После этого отделите работу от его родителей оболочки - в bash: disown -h %<jobid>. После этого вы можете безопасно закрыть терминал, и работа продолжится.
Другое решение, не найденное в этом посте, использует retty после запуска сеанса экрана.
Я удалил свой ответ; Вы можете (и должны) принять свой собственный ответ через 2 дня. Не стесняйтесь цитировать соответствующие части здесь, поскольку «дубликаты» между сайтами на самом деле не являются обманщиками из-за разной аудитории.
Jeff Atwood 15 лет назад
5
Но вы не указали соответствующие части, согласно предложению Джеффа. знак равно
David Thomas 15 лет назад
4
5
DaveJohnston
Посмотрите на reptyr, который делает именно это. Страница github содержит всю информацию.
reptyr - инструмент для «перепечатывания»
программы.
reptyr - это утилита, которая берет существующую работающую программу и подключает ее к новому терминалу. Запустил длительный процесс через ssh, но должен уйти и не хочет его прерывать? Просто запустите экран, используйте reptyr, чтобы захватить его, а затем завершите сеанс ssh и идите домой.
ИСПОЛЬЗОВАНИЕ
PID рептира
«reptyr PID» захватит процесс с идентификатором PID и подключит его к вашему текущему терминалу.
После подключения процесс примет ввод и запишет вывод на новый терминал, включая ^ C и ^ Z. (К сожалению, если вы справитесь с этим, вам все равно придется запускать «bg» или «fg» в старом терминале. Вероятно, это невозможно исправить разумным способом без исправления вашей оболочки.)