Ця публікація може допомогти. Рекомендація:
- фоновий процес (з Ctrl-Z, потім bg )
- запустити disown -h% [jobid] (ймовірно, bash-ism, тому вам доведеться перекласти для tcsh)
Погана новина , звичайно, є те , що Б.Г. необхідно буде зробити в тій же оболонці процес виконується в ... але ... це може бути вже в фоновому режимі .
Дійсно погана новина в тому , що відхрестився виклик , можливо , буде потрібно зробити в одній оболонці. У такому випадку, так, ви накрутили. Але я не впевнений, можливо, root може змусити його відключити.
Хм. Можлива добра новина - tcsh робить відмову автоматично:
Якщо tcsh закінчується ненормально, він відключає завдання, що працюють у фоновому режимі, автоматично, коли він виходить.
Отже, якщо ваш довгостроковий процес вже є фоном, вбивство його батька tcsh повинно дозволити йому продовжуватися. Зараз процес відключений від стартового терміналу. (Якщо ні, див. "Погані новини" вище.)
На жаль, це не екран, тому реального підключення немає. Ви можете підробити це за допомогою gdb (знову ж таки, за першим посиланням):
[...] з деякими брудними хаками неможливо відновити процес 'stdout / stderr / stdin.
Таким чином, ви все ще можете створити порожнє вікно (наприклад, у режимі сну).
А потім використовуйте gdb, наприклад, для приєднання до процесу, виконайте кілька закритих викликів (0)
закриття дзвінка (1)
закриття дзвінка (2)
виклик відкритим ("/ dev / pts / xx", ...)
виклик dup (0)
виклик дуп (0)
від'єднання
Вихід процесу буде виходити на екран. Він не був би приєднаний до цього екранного терміналу, тому, наприклад, [sic] вбивав би команду "сон", а не процес, але цього може бути достатньо для ОП.
Цікаво, чи не повинно бути в цьому процесі "дуб дзвінка (1)" і "дуб дзвінка (2)" ...