A maneira usual de iniciar uma unidade enquanto passa um parâmetro é usar instâncias e iniciar unit@parameter
e recuperar esse valor dentro da unidade com %I
.
Por exemplo, usando --user
para teste, arquivo ~/.config/systemd/user/tryfail.service
:
[Unit]
User=otheruser
[email protected]
[Service]
ExecStart=/bin/bash -c 'sleep 3;exit 7'
e ~/.config/systemd/user/[email protected]
[Unit]
Description=%I Instance of Fail Service
[Service]
ExecStart=/bin/bash -c 'echo got %i'
StandardOutput=journal
Agora os comandos
systemctl --user daemon-reload
systemctl --user start tryfail
journalctl -f
deve mostrar o serviço de falha sendo iniciado com otheruser
como informações. Obviamente, o User=
é ignorado ao testar com --user
, mas isso não tem consequências.