我已经在我的 Arch Linux 服务器上安装了 MySQL。我将数据目录移动到 /home 下的一个位置,我的 RAID 卷安装在该位置。我注意到默认情况下 mysqld 不会在此配置中启动,因为 systemd 单元包含设置ProtectHome=true
。
我要重写只是此设置。我不想重新指定ExecStart
或类似的命令,以防它们在软件包升级时发生变化。
我尝试在/etc/systemd/system
调用时创建一个简单的文件mysqld.service
并只添加了以下几行:
[Service]
ProtectHome=false
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它看起来像是 /etc 中的服务替换而不是覆盖系统服务。
有没有办法在不直接修改 /usr/lib/systemd/system 中的文件的情况下以这种方式覆盖 systemd 单元文件中的设置?(这是我现在所做的临时修复,尽管如果更新包最终会恢复)
use*_*ser 57
systemctl edit
将创建一个插入文件,您可以在其中覆盖大部分设置,但这些文件有一些值得一提的细节:
请注意,对于插入文件,如果想要从解析为列表(并且不是依赖项)的设置中删除条目,例如
AssertPathExists=
(或例如ExecStart=
在服务单元中),则需要先清除列表,然后再重新- 添加除要删除的条目之外的所有条目。Run Code Online (Sandbox Code Playgroud)#/etc/systemd/system/httpd.service.d/local.conf [Unit] AssertPathExists= AssertPathExists=/srv/www
依赖项(
After=
等)无法重置为空列表,因此依赖项只能添加到插件中。如果要删除依赖项,则必须覆盖整个单元。
要覆盖整个单元,请使用systemctl edit --full
,/etc
如果还没有,这将创建一个副本并让您编辑它。
另请参阅Systemd 删除覆盖
jdw*_*olf 25
您可以使用覆盖 systemd 单元文件
systemctl edit mysqld.service
Run Code Online (Sandbox Code Playgroud)
覆盖文件中的任何语句都将具有优先权。
归档时间: |
|
查看次数: |
28498 次 |
最近记录: |