/usr/bin/startx :有人曾经满足过紧急情况吗?如何?

MC6*_*020 5 x11 history startx

我相信周围的任何人,几十年来一直在解雇 /usr/bin/startx ,除了对它所服务的工作 100% 满意之外什么也没有。

\n

如果它有效\xe2\x80\xa6,请不要修复它!

\n

然而,脚本的作者很明确:

\n
\n

强烈建议站点管理员编写更好的版本。

\n
\n

我只是好奇:

\n
    \n
  • 有谁知道是什么历史原因迫使作者写下如此强烈的声明?
  • \n
  • 有没有人写过任何“更好的版本”,如何写以及为什么写?
  • \n
\n
\n

注意:我看到很多人要求关闭这个问题,因为它会触发基于意见的答案。
\n我理解“更好”的限定词如何暗示品味判断,但我无法想象作者“强烈敦促”管理员进行审美改变。

\n

该脚本中的很多内容都可以更改,从强制客户端/服务器参数、尊重/忽略用户 .*rc 到甚至顺便分叉除 /usr/bin/xinit 之外的任何其他内容。

\n

所有这些摆弄加上更多我什至无法想象,特别是在安全领域,肯定取决于完全合理的动机并符合特殊用例的目的。\n这正是这个问题的目的。

\n

Ste*_*itt 10

startx于 1988 年在X11R3中引入,具有以下变更日志条目

\n
\n

添加了一个示例 startx 脚本,其中包含适用于适当系统的条件。\n

\n
\n

这伴随着对 的许多改进xinit,例如支持特定于用户的脚本.xserverrc.xinitrc分别启动服务器和客户端的脚本。

\n

startx\xe2\x80\x99 并没有做更多的事情:它添加了对系统范围xserverrcxinitrc脚本的支持(可以很容易地添加到xinit自身中),并在 A/UX Macintosh II 系统(新近推出的系统)上自行清理。 R3) 和 Sun 系统支持。

\n

当时,许多系统都有自己的 X 启动脚本,无论是启动服务器,还是启动一组默认的客户端,只要 X11R2\xe2\x80\x99sxinit是简单的,需要定制(或完全至少使用一个包装脚本来替换),该脚本可以由系统\xe2\x80\x99s 制造商(例如 openwin在Sun 系统上)提供,也可以由本地系统管理员提供。startx实际上是一个非常简单的系统特定启动脚本模板;在 80 年代末和 90 年代初,系统管理员提供大量本地内容(脚本、手册页等)是非常常见

\n

startx 确实包含了足够的功能,使得在许多情况下无需对其进行任何更改,因为启动自定义可以完全通过提供本地xserverrcxinitrc脚本来处理。它的作者大概想象许多系统管理员已经有了更好的版本,或者 \xe2\x80\x9ceasily\xe2\x80\x9d 编写更好的版本来反映他们的本地约束和偏好 \xe2\x80\x94例如许多系统管理员不希望用户能够通过提供自己的.xserverrc.

\n

一个常见的更改是向脚本添加更多清理功能,例如终止错误的 Netscape Navigator 进程(至少在 SPARCstation 上,Netscape Navigator 4.78 在失去与 X11 服务器的连接时倾向于不退出,而是进入紧密循环) 。

\n

我没有\xe2\x80\x99t 此类脚本的存档,但有更好的版本,\xe2\x80\x9cnicer\xe2\x80\x9d 如\xe2\x80\x9c 更适合本地使用\xe2\x80\x9d比默认版本。Linux 发行版也经常带有startx补丁,例如 Debian 中的这个补丁。最近,sx它取代了xinitstartx,并进行了许多改进(硬编码服务器启动、更好的xauth处理、更可预测的 tty 处理)。startx多年来,它本身发生了很多变化,但强烈敦促 \xe2\x80\x9c 站点管理员编写更好的版本。 \xe2\x80\x9d 评论从未被删除,尽管他们这样做的原因已逐渐被删除。

\n

startx正如变更日志中提到的,作为示例的想法与 X11 发行版的其余大部分内容相符;例如,X 服务器被描述为 \xe2\x80\x9csample server\xe2\x80\x9d,许多制造商将基于它提供自己的实现:

\n
\n

此版本中提供的服务器、库和应用程序是示例,而不是参考实现。

\n
\n

(引用X11R4 发行说明;严格来说,这应该表明不应将实现\xe2\x80\x99 用作参考而不是实际标准,而不是不打算使用这些实现)。

\n