Сообщения широковещания не отображаются на gnome-terminal, но отображаются на xterm

Мне интересно о поведении широковещательных сообщений

$ sudo wall myfile 

сообщение из myfile появляется на всех устройствах /dev/ttyN (те, к которым я могу переключиться, нажав Ctrl + Alt + fN ), он также появляется в окнах xterm я открыл, но он не отображается на gnome-terminal (на самом деле я использую Linux Mint с MATE, так что это mate-terminal , но это fork gnome-terminal ).

Также интересно отметить, что если я запускаю tmux в xterm : я ожидал, что сообщение появится во всех сеансах терминала, которые запущены в tmux (во всех окнах и в каждой панели каждого окна), но на самом деле сообщение появляется только при текущих курсора в окне xterm .

Если я проверю текущий управляющий терминал, вызвав tty , он сообщит о разных терминалах для разных окон в tmux: скажем, у меня есть /dev/pts/11 в одном окне tmux и /dev/pts/12 в другом. Но широковещательное сообщение появляется только один раз для каждого окна xterm , а не для каждого сеанса терминала, открытого в tmux .

Мне кажется, что эмулятор терминала при распределении псевдотерминала нуждается, например, «регистрировать» его где-то, чтобы он мог принимать широковещательные сообщения, и поэтому xterm делает это, но mate-terminal и tmux этого не делают. Но это звучит странно, поскольку псевдотерминал выделяется ядром, поэтому он должен быть «зарегистрирован» автоматически везде, где он должен быть.

Я был бы рад, если бы кто-нибудь объяснил, как это работает и почему это поведение (казалось бы, странно).

  • Есть ли способ получить немецкий текст в речи на фестивале?
  • Как установить Liquidsoap & Airtime на CentOS 6.5?
  • Передача-пульт: получить идентификатор торрента после добавления торрента
  • Служба передачи-демона спонтанно останавливается
  • Передача не может подключиться к трекеру
  • 2 Solutions collect form web for “Сообщения широковещания не отображаются на gnome-terminal, но отображаются на xterm”

    В терминалах перечислены намеки на то, что поведение наблюдается с Linux: подсказки приведены на странице руководства для wall (например, Solaris отличается):

    wall отображается сообщение или содержимое файла или его стандартный ввод на терминалах всех зарегистрированных пользователей .

    Некоторые сеансы, такие как wdm , которые имеют в начале utmp (5) данные ut_type символ ':' не будут получать сообщение от wall . Это делается для того, чтобы избежать ошибок при записи.

    То есть wall использует данные utmp, ищет используемые терминалы (т. Е. Вошедшие в систему пользователи) и записывает на соответствующее устройство . Каждая строка на выходе w показывает (возможный) терминал, записанный терминалом в файле utmp. Например, я нахожусь на сервере и запускаю экран, в то же время я вошел в консоль. Просто для полноты я запускал xterm с помощью опции -ls (login-shell). Вот вывод w :

     $ w 19:53:15 up 4:08, 5 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT tom tty2 19:48 5:11 0.04s 0.02s -tcsh tom pts/0 michener:S.0 15:51 13:18 0.35s 0.24s ssh -X thomas@b tom pts/2 michener:S.1 16:34 2.00s 0.14s 0.00s sh -cw tom pts/4 michener:S.3 15:52 3:59m 0.12s 0.00s /bin/sh /users/ tom pts/3 localhost:10.0 19:53 7.00s 0.03s 0.03s -tcsh 

    и беговая wall записывает на каждое из этих устройств TTY .

    Однако, если терминал не пишет в файл utmp, он не будет указан – и wall игнорирует его.

    Теперь у некоторых программ может быть встроенная функция, но у нее нет привилегий для ее изменения. Вот почему некоторые программы запускаются с setgid в группу «utmp». Другие программы (такие как xterm – или gnome-terminal) могут использовать внешнюю программу, которая обновляет utmp от их имени.

    С gnome-терминалом функция устарела из-за мышления разработчиков гномов, которые (а) используют пользователей на локальном компьютере, где gdm обрабатывает логин, и (b) следовательно, нет различия, которое стоит беспокоиться между командами входа и -лоиновые оболочки. Это приводит к некоторым интересным сообщениям об ошибках:

    • [Решенный, устаревший вверх], кто -m и w не показывают pty logins (Arch)
    • Ошибка 747046: очистка pty.c (Gnome)
    • Ошибка 159363: gnome-pty-helper не очищает записи utmp / wtmp gnome-терминалов при уничтожении (Red Hat)
    • Ошибка 71368: Сводка: опция gnome-terminal «update utmp / wtmp» не работает, когда не используется gdm (Red Hat)

    На urxvt вы должны выпустить

     chown root.utmp /usr/bin/urxvt chmod g+s /usr/bin/urxvt 

    Затем он начинает работать.

    Я не понимаю, почему, просто скопирован (и протестирован) из http://permalink.gmane.org/gmane.comp.terminal-emulators.rxvt-unicode.general/1484 .

    Interesting Posts

    Как добавить задания cron на мой маршрутизатор? У меня есть доступ к SSH

    Как запустить «source .bashrc» автоматически после редактирования и сохранения?

    Как разрешить сценарию оболочки bash цикл для 3 повторений перед выходом (подсказка для имени пользователя / пароля)

    Ошибка TPM 7 – исправлена, но linux по-прежнему не загружается

    / usr / bin vs / usr / local / bin в Linux

    Почему во время «mv» не изменяется свободное пространство на исходном разделе?

    Как удвоить каждую строку и изменить цифры в каждой строке по-разному в Linux?

    Что я слышу о восстановлении First Edition Unix?

    Отключение электронной почты для учетной записи

    Пытается одновременно использовать awk и команду date

    ld-uClibc.so отсутствует

    Stop / sbin / agetty и выйти из сеанса

    Как выйти из режима поиска истории bash?

    IPython Qt Console не имеет названия в коммутаторе приложений GNOME

    Проблема с запуском Matlab 2010 в Ubuntu, связанная с libXp.so.6

    Linux и Unix - лучшая ОС в мире.