Why does
systemctlthink my application is not running?
Porque, como diz Tom Hunt, não está sendo executado.
Could it be that
systemctlis not calling the stop function because it thinks my application is already stopped?
Não. É muito claro que fez chamar a função de parada e executou como processo # 31850.
Existem duas possibilidades aqui, nenhuma das quais são problemas do sistema:
- Em algum momento, você iniciou seus programas de serviço diretamente, não como um serviço systemd. Isso é o que ainda está funcionando. É claro que o sistema não saberá disso.
- A funcionalidade
statusdo seu scriptinit.destá com defeito. Não seria o primeiro scriptinit.dcom defeito na história do mundo.
myapp.service - SYSV: Service script to start/stop my application
Esse "SYSV:" mostra que o script init.d é ruim. Ele nem tem o bloco de cabeçalho LSB.
Como diz Tom Hunt, escreva algumas unidades de serviço. Ou lembre-se da primeira regra para migração para o systemd e simplesmente aperte os que já foram escritos. Pela aparência, você realmente tem três serviços interdependentes, mas distintos, e deve estar escrevendo várias unidades de serviço com essas interdependências expressas. Se um deles é um servidor de banco de dados escutando na porta 3307, então a primeira regra quase certamente se aplica.