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.