当我执行上述命令时,X11打开了。我很困惑。我跑了吗?我怎么能确定在看东西时我没有运行任何程序?我真的很讨厌读取文本文件可能会执行程序的想法。如何编程在运行简单的cat-command或类似命令时执行的程序?
答案 0 :(得分:3)
如果你跑
file /tmp/:0
你应该看到这不是一个普通的'text'文件而是一个socket。别名ls
因此
ls -F
将有助于在shell中自动识别此类文件。
答案 1 :(得分:3)
这听起来像OSX 10.5的行为。
launchd侦听套接字'/ tmp / launch-xxxxxx /:0'。 DISPLAY变量设置为告诉X应用程序写入该套接字。当X应用程序打开套接字时,launchd会自动启动'X11.app',为应用程序提供显示。
cat'ing套接字打开它并触发X11.app。我不认为默认情况下配置了该行为的任何其他实例。
答案 2 :(得分:2)
机器:0是X显示器('机器'上的第一个显示器)
我从未见过/ tmp /:0但是可能是您的机器已配置为所有不匹配的机器名称映射到localhost。
你还没有执行任何操作,X服务器只会尝试将cat发送的任何命令解释为X指令。这就像把猫带到一个http地址
答案 3 :(得分:2)
:0
是一个引用X服务器的套接字。程序使用此套接字与X服务器通信(例如绘制窗口)。从这个套接字读取不知何故导致服务器激活。在执行此命令之前,X服务器必须已经运行。