Я использовал irssi на экране, но потерял соединение. После того, как я, ssh'd въезжают задним ходом к серверу, я больше не смогу присоединять к тому экрану. экранируйте шоу-ls, что экран уже присоединяется.
Я попробовал экран-D для принуждения, отсоединяют его, и это сказало, что отсоединение, но экран-ls все еще говорит, что это присоединяется. Я попробовал экран-x, и он просто зависает там.
[sub@server ~]$ screen -ls
There are screens on:
4033.poe (Detached)
7728.irssi (Attached)
2 Sockets in /var/run/screen/S-sub.
Что я могу сделать теперь?
При попытке соединить экран 'Attached', то выполненный screen -xr irssi
. Верхний регистр '-X' отправляет команду в одну из экранных сессий, нижний регистр '-x' опция позволяет Вам снова соединяться с приложенной сессией. Но все еще необходимо дать имя сессии, так как существует больше чем один.
Я имел некоторый успех путем отправки процессу GNU/экрана SIGCHLD (который он обычно получает, когда окно закрывается), это вынуждает его затронуть (и возможно воссоздать) файл сокета.
Также обратите внимание, что существует два способа вызвать screen
исполняемый файл, которые только отличаются в случае, если: SCREEN
компонент серверной стороны, который Вы пытаетесь повторно подключить к, в то время как screen
клиентское, которое переставляет данные между Вашим терминалом и серверной стороной. Таким образом, Вы могли бы хотеть попытаться уничтожить строчную версию...
Например, в следующем Вы видите что мой screen
и SCREEN
процессы не считаются родителем и ребенком, указывая, что я присоединил к существующей сессии.
# ps fao pid,command
25070 SCREEN -U
25071 \_ vim +let &t_Co=256
25073 \_ -bash
25077 \_ -bash
...
18364 \_ sshd: username [priv]
18366 | \_ sshd: username@pts/17
18367 | \_ -bash
870 | \_ screen -U -x
Новые сессии больше походят на это:
19645 | \_ screen -S MySession
19646 | \_ SCREEN -S MySession
19647 | \_ bash
1485 | | \_ python
19700 | \_ bash