我问了一个问题昨天回复的评论之一是,有人认为这是一项“用户服务”。现在如何区分“用户服务”和系统服务?
答案1
根据这文档,可以通过路径来区分单元文件。
例如;如果单元文件位于
/etc/systemd/system
/usr/lib/systemd/system
/run/systemd/system
目录,该单元属于系统。
如果它在
~/.config/systemd/user/*
/etc/systemd/user/*
$XDG_RUNTIME_DIR/systemd/user/*
/run/systemd/user/*
~/.local/share/systemd/user/*
/usr/lib/systemd/user/*
目录,它属于用户。
答案2
根据系统(1)系统单元目录的手册页:
systemd 系统管理器从各个目录读取单元配置。想要安装单元文件的包应将它们放置在以下命令返回的目录中:
pkg-config systemd --variable=systemdsystemunitdir
其他检查的目录是:
/usr/local/lib/systemd/system
/usr/lib/systemd/system
用户配置始终优先。
pkg-config systemd --variable=systemdsystemconfdir
返回系统配置目录的路径。软件包只能使用 systemctl(1) 工具的启用和禁用命令来更改这些目录的内容。 systemd.unit(5) 中提供了完整的目录列表。
然后对于用户单元目录:
类似的规则适用于用户单元目录。然而,这里遵循 XDG 基本目录规范 [6] 来查找单位。应用程序应将其单元文件放置在以下命令返回的目录中:
pkg-config systemd --variable=systemduserunitdir
全局配置在报告的目录中完成:
pkg-config systemd --variable=systemduserconfdir
systemctl(1) 工具的启用和禁用命令可以处理全局(即对于所有用户)和私有(对于一个用户)单元的启用/禁用。 systemd.unit(5) 中提供了完整的目录列表。
请注意,这些是系统的指导打包者放置不同文件的正确位置的规则,并且由打包者正确遵循这些规则。