2

Можно ли использовать что-то вроде screen , как « экран» , для активного сеанса пользователя в Linux/UNIX?

Например, я ssh на мой сервер из дома. Тогда я ssh к нему создаю работу. Я хочу убить домашний сеанс и «захватить» все процессы, которые он выполнял.

warren@home> ssh warren@myserver
warren@myserver> top

...

warren@work> ssh warren@myserver
warren@myserver> <grab-other-session-of-mine>

После команды / инструмента <grab-other-session-of-mine> сеанс warren@home ssh должен быть закрыт.

Это возможно?

2 ответа2

3

Насколько я знаю, это невозможно. Что не так с экраном или эквивалентами?

Процессы из вашего сеанса привязаны к их текущему tty и родительскому процессу, изменение их может привести к ряду неприятных проблем, поэтому для этого потребуется уровень абстракции, который обеспечивает ваши рабочие процессы постоянным tty и родительским процессом. Это то, что делает экран и друзья; их использование потребует помещения функции в сам sshd.

См. Использование экрана GNU в качестве "оболочки" для входа в систему, чтобы использовать экран в качестве оболочки для входа в систему, что избавляет от необходимости думать, чтобы запустить его.

1

Первое: да. Вы можете сделать это, если и только если вы записали сеанс TCP (не уверен, сколько из этого необходимо, но вам нужен доступ к перехвату пакетов), имеете необходимые инструменты и опыт, имеете полный контроль над генерируемыми пакетами на машине между клиентом и сервером и имеют доступ к закрытому ключу сервера. Вы могли бы предположительно взять на себя TCP-соединение, выдать себя за исходящего клиента и начать передавать и получать данные по существующему соединению.

Но это было бы глупо и намного сложнее, чем стоило бы, так что, практически, нет, вы не можете сделать это без использования такого инструмента, как экран.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .