我创建了一个服务单元来运行apache-httpd,它正在工作,但我担心我的服务单元配置文件是一个文件,但是目录中的其他项(/etc/systemd/system)都是目录,所以我的文件看起来像一个异常:

这很管用,但为什么我的定义和其他的不同?
发布于 2018-11-15 11:05:30
您显示的其他目录是.wants和.d -它们不包含整个服务文件(对于通过包安装的服务将驻留在/lib/systemd/system中),而只包含修改。
例如,如果您运行systemctl edit (servicename).service进行更改,可能需要设置其他环境变量,您将自动获得包含更改的/etc/systemd/system/servicename.d/override.conf。
这样做的目的是将/etc/中的admin所做的本地更改与/lib/systemd/system中可能接收包更新更改的包管理服务定义分离开来。
发布于 2018-11-15 12:28:27
单位既是文件又是目录。关于一个单元的完整信息被分发,并从两者中读取。
强制文件以.service、.target、.socket、.timer、.mount等结尾。
可选目录以.service.d、.service.requires、.target.wants等结尾。以.d结尾的文件包含常规文件。以.wants和.requires结尾的链接包含符号链接。有关详细信息,请阅读systemd.unit手册。
在您的示例中,文件和(当前不存在)目录都位于/etc/systemd下。您,本地管理员,是两者的来源。在其他单元中,文件位于其他地方,如/usr/lib/systemd下,目录位于/etc/systemd下。这反映了这样一个事实:文件部分是由软件包提供的,目录部分是作为本地管理员选择和修改的结果创建的(例如修改单元的Wants设置以启用其他单元)。
systemd的模型是/usr/lib/systemd和/usr/local/lib/systemd下的东西是包提供的,/run/systemd下的东西是在系统运行时动态创建的,而/etc/systemd下的东西是由本地系统管理员决定的。所有四个区域中的常规文件、目录和符号链接(可能涉及的不仅仅是一个system子目录,同样需要了解详细信息,请参阅手册)被合成到完整的单元信息中,并有关于什么优先于什么的规则。
https://unix.stackexchange.com/questions/481896
复制相似问题