Возможно нет. Я не могу гарантировать, что это невозможно, но я действительно сомневаюсь в этом.
Одним из них является отсутствие уничтожения оболочки и возможных команд, выполняемых как следствие прекращения соединения ssh. Это не так сложно, вы должны быть в состоянии использовать nohup и аналогичные механизмы, как указано в другом вопросе.
Но тогда предположим, что вы запустились, ssh somehost nuhup vim /some/file
и соединение исчезло. Ты бежишьssh somehost
для входа снова и видите, что ваш процесс vim все еще работает. Но как же вы снова подключаетесь к этому процессу? Интерактивные процессы forground имеют управляющий tty, и тот, который был открыт для вашего vim-процесса при запуске, с тех пор был бы закрыт. Я не уверен, есть ли какой-либо способ «открыть» его снова в вашей новой оболочке (так же, как если у вас есть несколько фоновых заданий, запущенных в одной оболочке, вы не можете перенаправить ни одну из них в другую оболочку).
Screen
были явно написаны, чтобы иметь эту функциональность. При запуске он разветвляется на два процесса: процесс управления терминалом и клиентский процесс. Взаимодействие выполняется клиентским <-> терминальным менеджером <-> приложением, и когда вы отсоединяете или теряете соединение, клиентский процесс умирает, а терминальный менеджер продолжает жить. У Screen есть некоторая конкретная поддержка для последующего подключения к процессу управления терминалом, и я не думаю, что это возможно в общем случае.