皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

SysVinit 3.14 发布:克服了 inittab 行长度的三十年限制

SysVinit 3.14 发布:克服了 inittab 行长度的三十年限制
对于那些继续使用 SysVinit 作为老化的 init 系统的人来说,在 Linux 世界中已经在很大程度上被 systemd 取代,SysVinit 3.14 今天发布,它克服了 inittab 文件中行长度的长期限制。

SysVinit 3.14 中最大的变化是克服了 inittab 文件每行 127 个字符的限制,该限制大约在过去三十年中一直存在。随着 SysVinit 的向前发展,inittab 行最多可以有 253 个字符……那些 inittab 行很长的人最好将该逻辑分流到一个 shell 脚本中,然后可以从 inittab 调用该脚本。

今天的 SysVinit 3.14 发布公告详细阐述了这一变化:

“此版本中最大的更改涉及 inittab 配置文件。多年来,inittab 文件中条目的最大行长度约为 127 个字符。在大多数情况下,这很好,而且在过去 30 年里似乎起到了作用。然而,那里有两个问题。

首先,如果有人想要运行更长的命令,比经典终端屏幕更长的命令很宽,那么 init 不会接受该命令。在我看来,更大的问题是处理了多长的队伍。如果你有一个超过 127 个字符的 lone,它会被截断,然后 init 会尝试运行剩余的任何内容。

经典的 truncate-and-run 行为具有潜在危险。因为,虽然大多数人不会在他们的 inittab 文件中放置 giant 命令,但如果他们这样做了,可能会导致意外行为。例如,用户不希望他们的 init 程序将清理命令行从 “rm -rf /var/tmp” 截断为仅 “rm -rf /var”。

因此,虽然 30 年来,大约 127 个字符对大多数人来说已经足够了,但这种行为很狡猾,需要纠正。现在,inittab 条目的长度可以是 253 个字符,并且当找到超过此长度的行时,它会记录警告,并且拒绝运行长度超过 253 个字符的行。它不再截断太长的行,它只是丢弃它们。

我认为大多数人无论如何都会在他们的 shell 脚本中放置长行和复杂的逻辑,但这只是针对潜在问题的额外保护。

其他 SysVinit 3.14 更改很小,但有一些手册页更新,并在其 Makefile 中重新添加了 “DESTDIR” 变量支持。

通过 GitHub 获取 SysVinit 3.14 的更多详细信息和下载。

已有 0 条评论 新浪微博
已有 0 条评论 新浪微博
-->