- systemd.index 中文手册
- systemd.directives 中文手册
- binfmt.d 中文手册
- bootctl 中文手册
- bootup 中文手册
- busctl 中文手册
- coredump.conf 中文手册
- coredumpctl 中文手册
- crypttab 中文手册
- daemon 中文手册
- dnssec-trust-anchors.d 中文手册
- environment.d 中文手册
- file-hierarchy 中文手册
- halt 中文手册
- hostname 中文手册
- hostnamectl 中文手册
- hwdb 中文手册
- journal-remote.conf 中文手册
- journal-upload.conf 中文手册
- journalctl 中文手册
- journald.conf 中文手册
- kernel-command-line 中文手册
- kernel-install 中文手册
- loader.conf 中文手册
- locale.conf 中文手册
- localectl 中文手册
- localtime 中文手册
- loginctl 中文手册
- logind.conf 中文手册
- machine-id 中文手册
- machine-info 中文手册
- machinectl 中文手册
- modules-load.d 中文手册
- networkctl 中文手册
- networkd.conf 中文手册
- nss-myhostname 中文手册
- nss-mymachines 中文手册
- nss-resolve 中文手册
- nss-systemd 中文手册
- os-release 中文手册
- pam_systemd 中文手册
- portablectl 中文手册
- resolvectl 中文手册
- resolved.conf 中文手册
- shutdown 中文手册
- sysctl.d 中文手册
- systemctl 中文手册
- systemd 中文手册
- systemd-analyze 中文手册
- systemd-ask-password 中文手册
- systemd-ask-password-console.service 中文手册
- systemd-backlight@.service 中文手册
- systemd-binfmt.service 中文手册
- systemd-bless-boot-generator 中文手册
- systemd-bless-boot.service 中文手册
- systemd-boot 中文手册
- systemd-boot-check-no-failures.service 中文手册
- systemd-cat 中文手册
- systemd-cgls 中文手册
- systemd-cgtop 中文手册
- systemd-coredump 中文手册
- systemd-cryptsetup-generator 中文手册
- systemd-cryptsetup@.service 中文手册
- systemd-debug-generator 中文手册
- systemd-delta 中文手册
- systemd-detect-virt 中文手册
- systemd-environment-d-generator 中文手册
- systemd-escape 中文手册
- systemd-firstboot 中文手册
- systemd-fsck@.service 中文手册
- systemd-fstab-generator 中文手册
- systemd-getty-generator 中文手册
- systemd-gpt-auto-generator 中文手册
- systemd-halt.service 中文手册
- systemd-hibernate-resume-generator 中文手册
- systemd-hibernate-resume@.service 中文手册
- systemd-hostnamed.service 中文手册
- systemd-hwdb 中文手册
- systemd-id128 中文手册
- systemd-importd.service 中文手册
- systemd-inhibit 中文手册
- systemd-initctl.service 中文手册
- systemd-journal-gatewayd.service 中文手册
- systemd-journal-remote.service 中文手册
- systemd-journal-upload.service 中文手册
- systemd-journald.service 中文手册
- systemd-localed.service 中文手册
- systemd-logind.service 中文手册
- systemd-machine-id-commit.service 中文手册
- systemd-machine-id-setup 中文手册
- systemd-machined.service 中文手册
- systemd-makefs@.service 中文手册
- systemd-modules-load.service 中文手册
- systemd-mount 中文手册
- systemd-networkd-wait-online.service 中文手册
- systemd-networkd.service 中文手册
- systemd-notify 中文手册
- systemd-nspawn 中文手册
- systemd-path 中文手册
- systemd-portabled.service 中文手册
- systemd-quotacheck.service 中文手册
- systemd-random-seed.service 中文手册
- systemd-rc-local-generator 中文手册
- systemd-remount-fs.service 中文手册
- systemd-resolved.service 中文手册
- systemd-rfkill.service 中文手册
- systemd-run 中文手册
- systemd-run-generator 中文手册
- systemd-sleep.conf 中文手册
- systemd-socket-activate 中文手册
- systemd-socket-proxyd 中文手册
- systemd-suspend.service 中文手册
- systemd-sysctl.service 中文手册
- systemd-system-update-generator 中文手册
- systemd-system.conf 中文手册
- systemd-sysusers 中文手册
- systemd-sysv-generator 中文手册
- systemd-time-wait-sync.service 中文手册
- systemd-timedated.service 中文手册
- systemd-timesyncd.service 中文手册
- systemd-tmpfiles 中文手册
- systemd-tty-ask-password-agent 中文手册
- systemd-udevd.service 中文手册
- systemd-update-done.service 中文手册
- systemd-update-utmp.service 中文手册
- systemd-user-sessions.service 中文手册
- systemd-vconsole-setup.service 中文手册
- systemd-veritysetup-generator 中文手册
- systemd-veritysetup@.service 中文手册
- systemd-volatile-root.service 中文手册
- systemd.automount 中文手册
- systemd.device 中文手册
- systemd.dnssd 中文手册
- systemd.environment-generator 中文手册
- systemd.exec 中文手册
- systemd.generator 中文手册
- systemd.journal-fields 中文手册
- systemd.kill 中文手册
- systemd.link 中文手册
- systemd.mount 中文手册
- systemd.netdev 中文手册
- systemd.network 中文手册
- systemd.nspawn 中文手册
- systemd.offline-updates 中文手册
- systemd.path 中文手册
- systemd.preset 中文手册
- systemd.resource-control 中文手册
- systemd.scope 中文手册
- systemd.service 中文手册
- systemd.slice 中文手册
- systemd.socket 中文手册
- systemd.special 中文手册
- systemd.swap 中文手册
- systemd.syntax 中文手册
- systemd.target 中文手册
- systemd.time 中文手册
- systemd.timer 中文手册
- systemd.unit 中文手册
- sysusers.d 中文手册
- timedatectl 中文手册
- timesyncd.conf 中文手册
- tmpfiles.d 中文手册
- udev 中文手册
- udev.conf 中文手册
- udevadm 中文手册
- user@.service 中文手册
- vconsole.conf 中文手册
user@.service 中文手册
名称
user@.service, user-runtime-dir@.service — 管理用户进程的系统单元
大纲
user@
UID
.service
user-runtime-dir@
UID
.service
user-
UID
.slice
描述
systemd(1)系统管理器(PID=1)以user@
为名称启动用户管理单元实例。每一个 systemd --user 实例都管理着一个包含该用户所有运行单元的层次结构。详见systemd(1)手册以了解 systemd 单元的一般概念、systemd.special(1)手册以了解用于组成系统单元/用户单元的基本层次结构的特殊单元。UID
.service
每一个 user@
单元实例都附带着一个 UID
.serviceuser-runtime-dir@
系统单元实例,用于创建用户运行时目录UID
.service/run/user/
,并在该单元停止时自动将其删除。UID
用户进程可以由 user@.service
的实例启动,在这种情况下,在系统的层次结构中,用户进程将成为该单元的一部分。用户进程也可以在其他地方启动,例如由sshd(8)或者像 gdm 这样的显示管理器启动,在这种情况下,将会形成一个 .scope 单元(参见systemd.scope(5) 手册)。 user@
与 scope 单元都将被收集在 UID
.serviceuser-
单元之中。UID
.slice
所有 user-
单元都收集在 UID
.sliceuser.slice
单元之下,详见systemd.special(8) 手册。
针对已登录用户的资源控制
针对已登录用户的资源控制可以在几个不同的层次上进行配置。正如前文所述,因为 user.slice
包含了所有用户的进程,所以在此 slice 上施加的资源限制将会作用于全部已登录用户的总体。通常通过例如 /etc/systemd/system/user.slice.d/resources.conf
这样的配置片段实现。
属于单个已登录用户的全部进程都收集在user-
之下。针对单个用户的资源限制可以通过此 slice 来实现(通过例如 UID
.slice/etc/systemd/system/user-1000.slice.d/resources.conf
这样的配置片段)。如果想对每一个已登录用户都施加相同的资源限制,可以通过 user-.slice
单元(剪掉单元名称)的配置片段来实现。例如,配置片段 /etc/systemd/system/user-.slice.d/resources.conf
将会被包含进所有user-
单元中。参见systemd.unit(5)以了解单元配置片段的工作原理。UID
.slice
在一个用户登录的同时,将会自动为该用户的登录会话创建一个 .scope 单元(参见前面的小节),创建 scope 单元的操作可以由pam_systemd(8) 实施。此 PAM 模块与systemd-logind.service(8)通信以创建会话 scope 单元,并提供对硬件资源的访问。针对该 scope 单元的资源控制,既可以通过 PAM 模块的配置来实现(详见pam_systemd(8) 手册)、也可以通过常规的单元配置片段来实现。不过需要注意的是,后一种方法没有实际意义,因为该 scope 单元的名称是无法预知的,所以实践中只能通过 PAM 模块的配置来实现。
通常,任何针对单元的资源控制都可以用于user@
单元与上文提及的 slice 单元。详见systemd.resource-control(5)以了解更多有关资源控制的详情。UID
.service
例子
例 1. 拥有两个已登录用户的控制组层次结构
$ systemd-cgls Control group /: -.slice ├─user.slice │ ├─user-1000.slice │ │ ├─user@1000.service │ │ │ ├─pulseaudio.service │ │ │ │ └─2386 /usr/bin/pulseaudio --daemonize=no │ │ │ └─gnome-terminal-server.service │ │ │ └─init.scope │ │ │ ├─ 4127 /usr/libexec/gnome-terminal-server │ │ │ └─ 4198 zsh │ │ … │ │ └─session-4.scope │ │ ├─ 1264 gdm-session-worker [pam/gdm-password] │ │ ├─ 2339 /usr/bin/gnome-shell │ │ … │ │ ├─session-19.scope │ │ ├─6497 sshd: zbyszek [priv] │ │ ├─6502 sshd: zbyszek@pts/6 │ │ ├─6509 -zsh │ │ └─6602 systemd-cgls --no-pager │ … │ └─user-1001.slice │ ├─session-20.scope │ │ ├─6675 sshd: guest [priv] │ │ ├─6708 sshd: guest@pts/6 │ │ └─6717 -bash │ └─user@1001.service │ ├─init.scope │ │ ├─6680 /usr/lib/systemd/systemd --user │ │ └─6688 (sd-pam) │ └─sleep.service │ └─6706 /usr/bin/sleep 30 …
UID=1000 的用户通过 gdm (session-4.scope
) 与ssh(1)(session-19.scope
) 登录,同时拥有一个用户管理单元实例(user@1000.service
)。UID=1001 的用户通过 ssh (session-20.scope
) 登录,同时拥有一个用户管理单元实例(user@1001.service
)。这些(叶子)系统单元向上构成了 user-1000.slice
与user-1001.slice
单元,进一步向上又构成了 user.slice
单元。用户单元可见于user@.service
实例之下(pulseaudio.service
, gnome-terminal-server.service
, init.scope
, sleep.service
)。
例 2. 默认用户资源限制
$ systemctl cat user-1000.slice # /usr/lib/systemd/system/user-.slice.d/10-defaults.conf # … [Unit] Description=User Slice of UID %j After=systemd-user-sessions.service [Slice] TasksMax=33%
user-
单元默认不存在单元文件。只能通过单元配置片段来施加资源限制, 这种方式便于按照标准的单元配置片段作用机制对配置进行替换和扩展(参见第一小节)。UID
.slice
参见
systemd(1),systemd.service(5),systemd.slice(5),systemd.resource-control(5),systemd.exec(5),systemd.special(7),pam(8)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论