Eu fiz um pequeno serviço systemctl para gerenciar o servidor HLTV (ele grava demos de um jogo e os armazena em disco):
[Unit]
Description=HLTV server
Requires=cs16.service
After=cs16.service
[Service]
Type=simple
User=cs16
Group=cs16
UMask=007
ExecStart=/home/cs16/server/hltv_start.sh
Restart=on-failure
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
Funciona muito bem, mas se eu desligar / reiniciar o serviço do sistema, ele mata o processo, o que corrompe a demonstração que está sendo gravada no momento.
Para salvar corretamente a demo, eu preciso digitar "quit" ou "stop" na ferramenta de comando htlv. Existe uma maneira de fazer o systemctl enviar um desses comandos para o programa antes de fechá-lo?