Відповіді:
Знайшов цю відповідь на сервері за замовчуванням від Earl :
Однак для вашої реальної проблеми ви можете спробувати ще одну справу: після запуску своєї роботи з терміналу виберіть її, набравши ctrl- zі потім
bg
.
Після цього відокремте роботу від його батьківської оболонки - вbash
:disown -h %<jobid>
. Після цього ви можете безпечно закрити термінал, і робота продовжить роботу.
І це з того самого запитання від Роб Веллса :
$ screen -S my_process
$ retty $(pgrep my_process)
/redraw
Знайдений дублікат у ServerFault .
Іншим рішенням, яке не знайдено в цій публікації, є використання retty після початку екранного сеансу.
Погляньте на рептирій , який робить саме це. На сторінці github є вся інформація.
reptyr - Інструмент для "повторного набору"
програми.
reptyr - це утиліта для прийняття наявної запущеної програми та приєднання її до нового терміналу. Почався тривалий процес над ssh, але доведеться вийти з нього і не хочете його переривати? Просто запустіть екран, використовуйте рептирій, щоб схопити його, а потім вбити ssh сеанс і повернутися додому.
ВИКОРИСТАННЯ
рептирій PID
"reptyr PID" захопить процес із ідентифікатором PID та додасть його до поточного терміналу.
Після приєднання процес буде приймати вхід з і записувати вихід у новий термінал, включаючи ^ C і ^ Z. (На жаль, якщо ви працюєте з фоном, вам все одно доведеться запускати "bg" або "fg" у старому терміналі. Це, ймовірно, неможливо виправити розумним чином, не виправляючи оболонку.)