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 files units, but I can't get it on 1009?
Se você não estiver executando os processos do UID 1009 agora, então systemd
(ou tecnicamente logind
) não iniciará a fatia para esse UID.
Além disso, mesmo se você aplicar com sucesso quaisquer configurações enquanto os processos estiverem em execução, eles serão perdidos se todos os processos pararem de ser executados. Porque a unidade de fatia será parada novamente. Às vezes, isso pode ser o que você quer, mas parece que pode ser muito confuso.
Seria mais sensato adicionar as configurações desejadas em um arquivo de configuração, por exemplo, /etc/systemd/system/user-1009.slice.d/cpuquota.conf
.
Use systemd-analyze verify user-1009.slice
para verificar o arquivo de configuração e systemctl daemon-reload
para carregá-lo. Eu acho que a configuração atualizada não terá efeito até que a unidade de fatia tenha sido parada. Você também pode reiniciar a unidade de fatia manualmente, mas isso matará todos os processos em execução dentro dela.
Se você não tem user-1009.slice
quando seus processos estão em execução, é porque os processos desse usuário não estão sendo executados dentro de pam_systemd
. Isso pode ser porque eles não começaram a usar o PAM. Também pode ser porque o "serviço" do PAM não está configurado para usar o pam_systemd.
sudo
/ su
no Linux deve usar o PAM. E nas configurações que eu vi em sistemas operacionais baseados em RedHat e Debian, ele usa pam_systemd
. Mas há um terceiro caso em que pam_systemd
não entraria em vigor: se você estiver executando o comando dentro de uma sessão de usuário existente. Consulte o link
Esse último ponto explica um comportamento confuso de su
, ou seja, por que você não visualizou nenhum processo em user-1009.slice
quando executou manualmente su - user-1009
.