Use arquivos de modelo da unidade systemd
Este é um bom exemplo para quando os modelos de unidades do systemd podem ser usados. É possível ter um serviço systemd para ser chamado com um argumento e usar esse argumento na definição de serviço para e. g. Entregue-o ao programa que é executado. Aqui está um exemplo para o seu caso:
Instale sua unidade como
/etc/systemd/system/[email protected]
Altere o arquivo para ficar assim:
[Unit]
Description=Gmod server (map: %I)
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash /home/server/Documents/Servers/Gmod/run_gmod.sh %i
[Install]
WantedBy=multi-user.target
DefaultInstance=myDefaultMap
(Você pode precisar executar systemctl daemon-reload
neste ponto para fazer o systemd ler o arquivo alterado). Depois disso, você poderá iniciar o gmod com um argumento como este:
systemctl start [email protected]
O Systemd usará o arquivo de gabarito e substituirá I%
pelo argumento e %i
pelo argumento citado pelo shell. Depois, iniciará como uma instância de serviço denominada [email protected]
. Você pode verificar isso executando
systemctl status gmod@myMapName
Você também pode iniciar automaticamente uma instância padrão no momento da inicialização, assim:
systemctl enable gmod@
Desta forma, você pode até iniciar várias instâncias do gmod, se o programa permitir isso. Para mais informações sobre o tópico, verifique a página de manual systemd.unit (5) .