Debian 10: я хочу ограничить память, процессор и т. Д. Для всех пользователей, кроме root
; Я нашел несколько статей об этом, но пока все они вращаются вокруг cgconfig, что, похоже, не так, как сейчас. Я видел несколько предложений использовать вместо этого срезы, поэтому для UID 1000 создайте что-то вроде:
# cat /lib/systemd/system/user-1000.slice
[Unit]
Description=User and Session Slice
Documentation=man:systemd.special(7)
Before=slices.target
MemoryHigh=20M
[Slice]
Slice=user-slice
[Install]
WantedBy=multi-user.target
и включите его с помощью systemctl enable user-1000.slice
. Кажется, это половина работы:
$ systemctl status user-1000.slice
Warning: The unit file, source configuration file or drop-ins of user-1000.slice changed on disk. Run 'systemctl daemon-reload' to reload units.
● user-1000.slice - User Slice of UID 1000
Loaded: loaded (/lib/systemd/system/user-1000.slice; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/user-.slice.d
└─10-defaults.conf
Active: active since Thu 2020-07-09 07:37:28 UTC; 1h 8min ago
Docs: man:systemd.special(7)
man:user@.service(5)
Tasks: 7 (limit: 5237)
Memory: 5.4M
CGroup: /user.slice/user-1000.slice
├─session-15.scope
│ ├─1089 sshd: jan [priv]
│ ├─1107 sshd: jan@pts/1
│ ├─1108 -bash
│ ├─1113 systemctl status user-1000.slice
│ └─1114 pager
└─user@1000.service
└─init.scope
├─1092 /lib/systemd/systemd --user
└─1093 (sd-pam)
Тем не мение, MemoryHigh
не установлено:
$ systemctl show user-1000.slice
Slice=user.slice
ControlGroup=/user.slice/user-1000.slice
...
MemoryHigh=infinity
...
Кажется, я очень близок, но чего-то не хватает - что это?
Вы пропустили предупреждение, которое было напечатано на экране:
Warning: The unit file, source configuration file or drop-ins of user-1000.slice changed on disk. Run 'systemctl daemon-reload' to reload units.
Когда вы меняете единицы systemd, вы должны systemctl daemon-reload
чтобы система перечитала их. Кроме того, необходимо перезапустить затронутые блоки.
Тем не менее, если вы хотите, чтобы изменение применялось ко всем пользователям, вам, вероятно, следует переопределить user.slice
вместо. И, конечно же, вы никогда не должны редактировать файлы, поставляемые системой, вместо этого используйте переопределения через вставные файлы.