我可以相信周围的任何人,几十年来一直在解雇 /usr/bin/startx,但对它所服务的工作感到 100% 的满意度。
如果它有效......不要修复它!
然而,脚本的作者是明确的:
强烈敦促站点管理员编写更好的版本。
我只是好奇:
- 有谁知道是什么历史原因迫使作者写出如此强烈的声明?
- 有没有人写过任何“更好的版本”,如何以及为了什么?
注意:我看到许多关闭此问题的请求,因为它会触发基于意见的答案。
我理解“更好”的限定词如何暗示品味判断,但我无法想象作者“强烈敦促”管理员进行审美改变。
该脚本中的许多变化都是开放的,从强制客户端/服务器参数,尊重/忽略用户 .*rc 到甚至偶然分叉除 /usr/bin/xinit 之外的任何其他内容。
所有这些摆弄+更多我什至没有想到的特别是在安全领域,肯定取决于完全合理的动机并符合特殊用例的目的。这正是这个问题的意义所在。
startx
于 1988 年在X11R3中引入,并带有以下更改日志条目:这伴随着对 的一些改进
xinit
,例如支持用户特定.xserverrc
和.xinitrc
脚本以分别启动服务器和客户端。startx
除此之外没有做太多:它增加了对系统范围xserverrc
和xinitrc
脚本的支持(可以很容易地添加到xinit
自身中),并在 A/UX Macintosh II 系统(R3 中新支持)上自行清理和 Sun 系统。当时,许多系统都有自己的 X 启动脚本,无论是启动服务器,还是启动一组默认客户端,只要因为 X11R2
xinit
是准系统并且需要使用包装脚本进行定制(或彻底替换)至少,由系统制造商(例如openwin
在 Sun 系统上)或本地系统管理员提供。startx
实际上是系统特定启动脚本的一个非常简单的模板;在 80 年代末和 90 年代初,系统管理员提供大量本地内容(脚本、手册页等)非常普遍。startx
确实包含了足够的功能,因此在许多情况下无需对其进行任何更改,因为启动自定义可以完全通过提供本地xserverrc
和xinitrc
脚本来处理。它的作者大概认为许多系统管理员已经有了更好的版本,或者会“轻松”编写更好的版本来反映他们的本地限制和偏好——例如,许多系统管理员不希望用户能够通过提供他们自己的.xserverrc
.一个常见的变化是向脚本添加更多清理,例如杀死错误的 Netscape Navigator 进程(至少在 SPARCstation 上,Netscape Navigator 4.78 在失去与 X11 服务器的连接时倾向于不退出,而是进入一个紧密循环) .
我没有此类脚本的存档,但有更好的版本,比默认版本“更适合本地使用”中的“更好”。Linux 发行版也经常带有
startx
补丁,例如 Debian 中的这个。最近,sx
它替代了xinit
和startx
,并进行了许多改进(硬编码的服务器启动、更好的xauth
处理、更可预测的 tty 处理)。startx
多年来,它本身发生了许多变化,但“强烈要求网站管理员编写更好的版本”。评论从未被删除,即使他们这样做的理由逐渐被删除。startx
正如变更日志中提到的那样,作为样本的想法与 X11 发行版的其余大部分内容相吻合;例如,X 服务器被描述为“示例服务器”,许多制造商会在此基础上提供自己的实现:(引用X11R4 发行说明;严格来说,这应该表明不应将实现用作参考而不是实际标准,而不是不打算使用这些实现)。