I'm trying to set per-user limits on processes, most of them are run with sudo --user.
Why do user-1001 and user-1008 on my system have the slice
filesunits, but I can't get it on 1009?Если вы сейчас не используете процессы с UID 1009,тогда
systemd
(или техническиlogind
)не запустит слайс для этого UID.Кроме того, даже если вы успешно примените какие-либо настройки во время запущенных процессов, они будут потеряны, если все процессы перестанут выполняться. Потому что блок слайсов будет снова остановлен. Иногда это может быть то, что вы хотите, но мне кажется, что это может быть очень запутанным.
Было бы разумнее добавить нужные параметры в перетаскивание -в конфигурационном файле, например.
/etc/systemd/system/user-1009.slice.d/cpuquota.conf
.Используйте
systemd-analyze verify user-1009.slice
для проверки файла конфигурации иsystemctl daemon-reload
для его загрузки. Я думаю, что обновленная конфигурация не вступит в силу до тех пор, пока блок слайсов не будет остановлен. Вы также можете перезапустить блок слайсов вручную, но это убьет все процессы, запущенные внутри него.Если у вас нет
user-1009.slice
, когда ваши процессы запущены , это потому, что процессы этого пользователя на самом деле не выполняются внутриpam_systemd
. Возможно, это связано с тем, что они еще не начали использовать PAM. Также это может быть связано с тем, что «служба» PAM не настроена на использование pam _systemd.
sudo
/su
в Linux следует использовать PAM. И в конфигурациях, которые я видел в ОС на базе RedHat и Debian, он используетpam_systemd
. Но есть и третий случай, когдаpam_systemd
не вступит в силу :, если вы запускаете команду внутри существующего пользовательского сеанса. См.https://github.com/systemd/systemd/issues/7451Этот последний пункт объясняет некоторое запутанное поведение
su
, то есть почему вы не видели никаких процессов вuser-1009.slice
при ручном запускеsu - user-1009
.
Насколько мне известно, все пакеты с исходным кодом в Debian должны создавать хотя бы один бинарный пакет по крайней мере для одной архитектуры.
Чтобы подсчитать количество двоичных пакетов, созданных исходными пакетами, доступными в настроенных исходных репозиториях системы (deb-src
, строки ), запустите
awk '/Package:/{p=$2;b=0} /Binary:/{b=NF - 1} /^$/{printf "%s: %d\n", p, b} END{printf "%s: %d\n", p, b}' /var/lib/apt/lists/*Sources
При этом не удается найти исходный пакет без двоичных пакетов в текущих стабильных, тестовых, нестабильных и экспериментальных репозиториях.
Если вы хотите определить, какие пакеты с исходным кодом не создают двоичных файлов для данной архитектуры, вы можете действовать следующим образом:
глобальный список уникальных имен исходных пакетов:
awk '/Package:/{print $2}' /var/lib/apt/lists/*_Sources | sort -u > source-packages
список пакетов с исходным кодом, используемых для создания двоичных файлов данной архитектуры (, за исключением all
, который включен в индексы, специфичные для архитектуры -):
awk '/(Package|Source):/{source=$2}/Version:/{print source}' /var/lib/apt/lists/*-amd64_Packages | sort -u > amd64-packages
список записей, присутствующих в списке глобальных исходных пакетов, но не используемых дляamd64
:
comm -23 source-packages amd64-packages