如何在不编辑初始化脚本的情况下更改SysVinit服务?

如何在不编辑初始化脚本的情况下更改SysVinit服务?

假设服务是xyz。在systemd中,该/lib/systemd/system/xyz.service 文件有这样的命令:

[Service]
ExecStart=/usr/bin/xyz --foo

我想--bar在该命令中添加选项。使用 systemd,我可以在/etc/systemd/system/xyz.service.d/xyz.conf嵌入式文件中添加以下几行:

[Service]
ExecStart=
ExecStart=/usr/bin/xyz --foo --bar

这可以覆盖之后的命令systemctl daemon-reload。我想在 SysVinit 中也是如此,但是没有编辑/etc/init.d/xyz文件。是否可以在不编辑 SysVinit 脚本的情况下添加/更改命令选项?如果不是那么正确的方法是什么?我想永久更改该命令选项。

答案1

在仍然依赖 SysVInit 的系统上,您需要知道您的特定发行版采用的机制是什么。由于您可以source在守护程序脚本中保存任何文件,因此由发行版决定默认配置的位置。

引用一个邮政来自 Slackware 论坛:

我的理解是,这是一个 Debian 概念,已被一些软件包采用。

基本上,/etc/default包含最终用户或管理员可能更改的一些参数,而不是将这些值嵌入到实际的引导脚本中。这样,即使您升级软件包并替换启动脚本,更改也将持续存在。

这一概念本质上与( 、等).conf下的文件相同,但它们位于远离脚本本身的一个集中位置。rc.drc.inet1.confrc.bluetooth.conf

这意味着,大多数基于 Debian 的发行版都使用/etc/default.

红帽基于发行版,你会发现这种配置是由/etc/sysconfig最常用的软件(acpidhttpdntpdcrondsamba)上的目录管理的。

在 Arch 上,在 systemd 切换之前,您曾经/etc/{rc.conf,rc.d/functions,rc.d/functions.d/}自定义守护进程。

在 Slackware 上,根据服务的不同,您将拥有与要为其提供参数的守护程序同名的.conf文件( ,...),或者您必须编辑守护程序文件本身。/etc/rc.d/rc.inet1.confrc.wireless.conf

TL,博士:没有“默认 SysV Init”参数文件或目录。

相关内容