软件包管理器(在/usr/lib/systemd/
)中安装的服务应该如何在 Debian (9.5) 中使用?
我可以看到安装在 中的大量服务/usr/lib/systemd/user
,但这些服务无法通过正常systemctl status my-service
命令获得。我是否应该手动将我想要使用的服务复制到/etc/systemd/user/
?
答案1
除了系统范围的服务之外,Systemd 还允许您为每个用户提供特定于用户的服务。如果添加该标志,这些可以通过常规 systemctl 命令(stop
、start
、status
、edit
、 ...)进行管理。例如,如果您有,系统范围的服务管理器不知道这一点,但用户的服务管理器知道:enable
--user
/usr/lib/systemd/user/syncthing.service
↪ ls /usr/lib/systemd/user/syncthing.service
Permissions Size User Date Modified Name
.rw-r--r-- 285 root 13 Jun 20:40 /usr/lib/systemd/user/syncthing.service
↪ systemctl status syncthing
Unit syncthing.service could not be found.
↪ systemctl --user status syncthing
● syncthing.service - Syncthing - Open Source Continuous File Synchronization
Loaded: loaded (/usr/lib/systemd/user/syncthing.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-07-24 17:10:22 CEST; 2 weeks 3 days ago
Docs: man:syncthing(1)
Main PID: 815 (syncthing)
CGroup: /user.slice/user-1000.slice/[email protected]/syncthing.service
└─815 /usr/bin/syncthing -no-browser -no-restart -logflags=0
systemctl status --user
可用于列出当前用户的所有当前活动单位。
如果用户无法写入,也可以定义自己的单位,/usr/lib/systemd/user
或者管理员可以定义系统本地的用户单位,方法是将它们添加到为此目的列出的目录之一系统单元(5):
- 〜/.config/systemd/用户/
- /etc/systemd/用户/
- $XDG_RUNTIME_DIR/systemd/用户/
- 〜/.local/share/systemd/user/
- ……
答案2
用于systemctl --user status my-service
用户服务。用户服务也显示在user.slice
ofsystemctl status
命令下。您还需要--user
标记来启动/停止/启用/禁用这些服务,因为它们在正常用户会话下运行并且不需要 root 访问权限。阅读更多内容https://wiki.archlinux.org/index.php/Systemd/User