假设服务是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.d
rc.inet1.conf
rc.bluetooth.conf
这意味着,大多数基于 Debian 的发行版都使用/etc/default
.
在红帽基于发行版,你会发现这种配置是由/etc/sysconfig
最常用的软件(acpid
、httpd
、ntpd
、crond
、samba
)上的目录管理的。
在 Arch 上,在 systemd 切换之前,您曾经/etc/{rc.conf,rc.d/functions,rc.d/functions.d/}
自定义守护进程。
在 Slackware 上,根据服务的不同,您将拥有与要为其提供参数的守护程序同名的.conf
文件( ,...),或者您必须编辑守护程序文件本身。/etc/rc.d/
rc.inet1.conf
rc.wireless.conf
TL,博士:没有“默认 SysV Init”参数文件或目录。