广播消息不会出现在 gnome-terminal 上,但会出现在 xterm 上

Dmi*_*ank 5 terminal broadcast

我对广播消息的行为很好奇

$ sudo wall myfile
Run Code Online (Sandbox Code Playgroud)

来自的消息myfile出现在所有/dev/ttyN设备上(我可以通过按Ctrl+ Alt+切换到的设备fN),它也出现在xterm我打开的窗口上,但没有出现gnome-terminal(实际上我使用 Linux Mint 和 MATE,所以它mate-terminal,但它是分叉的gnome-terminal)。

如果我在tmux中运行,还有一个有趣的注意事项xterm:我预计该消息会出现在所有正在运行的终端会话上tmux(在所有窗口和每个窗口的每个窗格中),但实际上该消息仅出现在当前光标位置该xterm窗口。

如果我通过调用检查当前控制终端tty,它会报告 tmux 中不同窗口的不同终端:比如说,我/dev/pts/11在一个 tmux 窗口和/dev/pts/12另一个窗口中都有。但是,对于每个xterm窗口,广播消息只出现一次,而不是在tmux.

在我看来,该终端仿真器,当分配伪终端,需求一样,“注册”它的地方,使其能够接收广播消息,所以,xterm这样做,但mate-terminaltmux没有。但这听起来很奇怪,因为伪终端是由内核分配的,因此,它应该在需要的任何地方自动“注册”。

如果有人解释它是如何工作的以及为什么会这样(看起来很奇怪),我会很高兴。

fia*_*jaf 1

在 上urxvt,您必须发出

chown root.utmp /usr/bin/urxvt
chmod g+s /usr/bin/urxvt
Run Code Online (Sandbox Code Playgroud)

然后它开始工作。

我不明白为什么,只是从http://permalink.gmane.org/gmane.comp.terminal-emulators.rxvt-unicode.general/1484复制(并测试) 。