Eu tenho um serviço de sistema que é executado para usuários selecionados. O nome é serv@<uid>
( <uid>
é o UID do usuário). Eu quero compartilhar os limites de recursos do usuário com o serviço (coloque-o em user-<uid>.slice
) e também quero usar suas permissões.
/etc/systemd/system/[email protected]
[Unit]
Description=My service for user %i
[Service]
Type=simple
ExecStart=/usr/local/bin/serv.sh
Restart=always
User=%i
Slice=user-%i.slice
SuccessExitStatus=0 255 SIGKILL SIGTERM
[Install]
WantedBy=multi-user.target
Quando o usuário efetua logout, o serviço é encerrado usando SIGTERM. Por que o serviço não é reiniciado? Como posso configurá-lo para que o serviço não seja encerrado?
Para mim a solução foi
loginctl enable-linger username
. Sem isso, o serviço morreria quando o usuário desconectasse. https://wiki.archlinux.org/index.php/Systemd/User#Automatic_start-up_of_systemd_user_instancesVocê pode alterar a configuração do logind:
/etc/systemd/logind.conf
Isso também altera o comportamento de outros serviços e processos em segundo plano (como
screen
,tmux
). Consulte a edição nº 3483 ;Corra
systemctl restart systemd-logind
atrás disso.