在Ubuntu系统中,/etc/systemd/system/
和 /lib/systemd/system/
目录都用于存放 systemd 的单元文件(unit files),但它们有不同的用途和管理方式。以下是它们的主要区别:
/lib/systemd/system/
目录
- 用途:此目录用于存放系统默认的单元文件,这些文件通常由软件包管理系统(例如
apt
)安装和管理。 - 管理:这些文件通常不应由用户直接修改,因为它们可能会在软件包更新时被覆盖。
- 优先级:在 systemd 查找单元文件时,
/lib/systemd/system/
中的文件优先级较低,如果同名的单元文件存在于/etc/systemd/system/
中,后者将覆盖前者。
/etc/systemd/system/
目录
- 用途:此目录用于存放由系统管理员创建或修改的单元文件。这些文件用于覆盖或扩展
/lib/systemd/system/
中的默认配置。 - 管理:用户可以在这个目录中创建、修改和管理单元文件,这些文件不会被软件包更新所覆盖。
- 优先级:在 systemd 查找单元文件时,
/etc/systemd/system/
中的文件优先级较高,如果同名的单元文件存在于/lib/systemd/system/
中,前者将覆盖后者。
实际应用
- 覆盖默认配置:如果你需要修改一个由系统默认提供的服务单元文件,你可以将该文件复制到
/etc/systemd/system/
目录并进行修改。systemd 会优先使用/etc/systemd/system/
中的配置。 - 自定义服务:对于自定义的服务单元文件,建议直接创建在
/etc/systemd/system/
目录中。