Вопрос или проблема
На Solaris 10
Я подключаюсь через ssh
От одного пользователя я сделал
talk marian
и появляется
[Waiting for your party to respond]
С другой стороны (пользователь marian, на той же машине)
talk: connection requested by [email protected].
talk: respond with: talk [email protected]
Я сделал (как пользователь marian)
talk [email protected]
Вернувшись к pippo на его терминале, появляется
talk: connection requested by [email protected].
talk: respond with: talk [email protected]
Но экран завис
Что я упустил?
Я пытался использовать pts и ttys (/dev/term/a и /dev/term/b)
Похоже, что пользователь marian
может быть вошел как кто-то другой, и talk
не может определить правильную учетную запись (LOGIN
). Вы можете попробовать who am i
и whoami
, чтобы посмотреть, поможет ли это понять проблему.
Тем не менее, независимо от причины, запрос от pippo
к marian
не был сопоставлен с запросом от marian
к pippo
, поэтому первая сессия все еще ждет подключения.
Ctrl C должен прервать выполнение программы talk
у pippo
, и вы получите обратно командную строку.
Ответ или решение
На операционной системе Solaris 10 вы столкнулись с проблемой использования утилиты talk
, которая используется для обмена текстовыми сообщениями между двумя пользователями, работающими в Unix-системе. Причиной "заморозки" терминала, с которой вы столкнулись, могло стать несколько факторов, связанных с особенностями работы данной программы и конфигурацией системы.
Теория
Для начала, стоит обратить внимание на то, как работает talk
. Эта утилита предназначена для двухстороннего общения в режиме реального времени. Чтобы инициировать соединение, один пользователь должен отправить запрос другому, а второй пользователь должен его принять. В обычной ситуации это происходит следующим образом:
- Инициирование сеанса: Пользователь A отправляет команду
talk userB
, гдеuserB
— это логин пользователя, с которым он хочет связаться. - Ответ на запрос: На экране пользователя B появляется уведомление о входящем соединении, и его просят выполнить команду
talk userA
для начала общения. - Установление соединения: Когда пользователь B выполняет команду
talk userA
, между обоими пользователями устанавливается соединение, и они могут обмениваться сообщениями.
Основная проблема, с которой вы столкнулись, заключается в том, что один из пользователей заблокировал терминал, и это может произойти по нескольким причинам. Например, если процессы talk
не соответствуют друг другу по идентификации терминалов или пользователю, или если есть сетевые ограничения или ошибки в работе talk
.
Пример
В приведенном вами описании, пользователь pippo
инициировал соединение с marian
с помощью команды talk marian
. Однако при попытке соединения возникли следующие моменты:
- Пользователь
marian
, как предполагается, вошел в систему от имени другого пользователя, что могло повлиять на успешную идентификацию сеансаtalk
. - Обнаружено запросы на соединение, но, вероятно, процедура соединения не завершилась корректно.
- Возможно, пользователь
marian
ввел неправильный идентификатор для ответа, или между пользователями возник конфликт идентификаторов сеансов.
Применение
Теперь, когда у нас есть определенное понимание проблемы, давайте рассмотрим, что можно сделать для ее решения:
-
Проверка идентификационных данных: Убедитесь, что
marian
действительно вошел в систему под нужным логином. Командыwhoami
иwho am i
помогут определить, кто сейчас взаимодействует с системой и под каким логином. Это должно устранить недоразумения, связанные с аутентификацией. -
Отмена зависшего процесса: Если у
pippo
терминал завис, это может быть связано с зависанием процессаtalk
. Чтобы выйти из этого состояния, рекомендуется прервать процесс с помощью Ctrl+C. Это действие должно вернуть контроль над терминалом. -
Проверка сетевых соединений: Убедитесь, что между пользователями установлено правильное сетевое соединение. Иногда ограничения или блокировки на уровне брандмауэра могут предотвратить правильную работу программы
talk
. -
Диагностика терминальных устройств: Убедитесь, что вы используете корректные терминальные устройства (например,
pts
илиtty
), необходимые для соединения. Проверка доступных терминалов с помощью командыwho
поможет определить, на каких устройствах активны пользователи. -
Исключение других возможных факторов: Возможно, в системе установлены правила безопасности или ограничения, препятствующие работе таких программ. Убедитесь, что
talk
имеет все необходимые разрешения и права для работы.
При соблюдении всех этих рекомендаций, вы сможете эффективно решить проблему с заморозкой терминала при использовании talk
на Solaris 10. Если проблема продолжает сохраняться, возможно, стоит обратиться к системному администратору для дальнейшего изучения вопроса.