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