首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的服务单元文件是一个文件,而其他文件是一个目录?

为什么我的服务单元文件是一个文件,而其他文件是一个目录?
EN

Unix & Linux用户
提问于 2018-11-15 10:16:05
回答 2查看 368关注 0票数 0

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

这很管用,但为什么我的定义和其他的不同?

我用了“技术指南”中关于创建服务单元的说明

EN

回答 2

Unix & Linux用户

发布于 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中可能接收包更新更改的包管理服务定义分离开来。

票数 1
EN

Unix & Linux用户

发布于 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子目录,同样需要了解详细信息,请参阅手册)被合成到完整的单元信息中,并有关于什么优先于什么的规则。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/481896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档