Como configurar o serviço do usuário do Systemd com um temporizador

2

Eu tenho um serviço de usuário systemd que funciona como esperado. É iniciado assim:

systemctl start test@user

O problema é que preciso executar esse serviço em um temporizador, possivelmente para vários usuários. Não parece haver uma maneira de especificar um usuário no próprio timer ou uma maneira de passar o nome de usuário com a notação @.

Aqui está o temporizador:

[Unit]
Description=Test (runs once every 24 hours)

[Timer]
OnUnitActiveSec=24h
Persistent=true
[email protected]

[Install]
WantedBy=timers.target

O que me confunde é o que colocar na "Unidade=". Se eu colocar em "[email protected]" ele funciona, mas então ele sempre será executado como um único usuário, derrotando o ponto de ter um serviço multiusuário. Usar "test @ .service" inicia o temporizador, mas "systemctl status test @ user" mostra-o como sempre inativo, mesmo com o timer configurado para o intervalo de 1min.

Não sei como listar todas as instâncias em execução de um determinado serviço systemd, por isso não sei se o serviço "test @" está sendo executado como um usuário diferente quando um timer executa o serviço sem o "@user".

Qual é a maneira correta de iniciar os serviços do usuário com um timer? Idealmente, os usuários devem ser capazes de criar e gerenciar seus próprios serviços, bem como os timers que acompanham esses serviços.

    
por DominicM 23.08.2015 / 18:21

1 resposta

0

Isso responde ao que você precisa?

systemctl --user start unit.service
    
por 09.08.2018 / 06:31