Debian 系统中 ulimit 的配置和管理方式在不同版本之间并没有发生根本性的变化,但是随着系统的演进,特别是从 SysVinit 切换到 Systemd 之后,ulimit 的配置和管理方式也有所调整。具体来说,以下几个方面值得关注:
SysVinit 时代的 ulimit 配置
在 SysVinit 时代,ulimit 的配置通常通过 /etc/inittab
文件或者 /etc/initscript
文件来进行。这种方式设置的 ulimit 只会影响到特定的进程,而且需要重启系统才能生效。
Systemd 时代的 ulimit 配置
随着 Debian 切换到 Systemd,ulimit 的配置方式也发生了变化。在 Systemd 时代,ulimit 的配置不再通过 /etc/initscript
文件,而是通过 /etc/systemd/system.conf
文件来进行。这种方式设置的 ulimit 会影响到系统的根进程(即 1 号进程),因此不需要重启系统即可生效。
在 Debian 8(Jessie)中,有一个已知的问题,即尽管在 Systemd 配置中设置了 DefaultLimitNOFILE=infinity
,但 1 号进程及其子进程的 max open file
限制仍然只有 65536,而不是预期的系统默认值 1048576。这个问题最终被识别为 Systemd 的一个 bug,并在后续版本中得到了修复。
因此,可以推测在 Debian 8(Jessie)版本中,ulimit 的配置和管理方式发生了显著变化,特别是与 Systemd 的集成方式。