Serviço Tipo = forking é para programas verdadeiramente bifurcados (apache, por exemplo). Seu script bash só executa outro script em segundo plano. Isso não é exatamente o que o systemd quer como programa de bifurcação. Por que você está usando
Type=forking
, quando seu script my-script é um serviço simples e normal?
Tente alterar o tipo de serviço e execute seu script diretamente com isso:
[Service]
Type=simple
PIDFile=/var/run/myservice.pid
ExecStart=/my/path/my-script my-args
E remova o arquivo inteiro / my / path / fork . Eu não consigo ver nenhum lucro disso.
Além disso, você pode tentar definir a opção TimeoutStartSec = 1 para o arquivo de configuração do serviço.
Estou usando um script bash contendo loop infinito com essa configuração:
[Service]
User=root
ExecStart=/root/ha.sh
WorkingDirectory=/root/
KillSignal=SIGKILL
Restart=on-abort
Type=simple
TimeoutStartSec=1
TimeoutStopSec=1
StandardError=syslog
NotifyAccess=all