Eu tenho um arquivo de unidade systemd que inicia dois processos completamente separados, apache e tomcat (e antes de você comentar sobre isso, eu sei que deveria fazer apenas dois arquivos de unidade separados, mas as permissões neste servidor estão bem trancadas). Ao iniciar o serviço por meio de uma sessão SSH, tudo começa e termina bem. No entanto, quando o servidor é reinicializado, somente o apache inicia o backup, com o systemd afirmando que tudo está bem. Quando eu verifico os logs do tomcat, parece que ele foi iniciado, mas o processo simplesmente morre em algum momento.
O que poderia estar causando essa diferença de comportamento? Este serviço precisa esperar por algo mais antes de começar?
Arquivo de unidade:
[Unit]
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/home/opiusr/appstart.sh
ExecStop=/home/opiusr/appstop.sh
[Install]
WantedBy=multi-user.target
Ambos os scripts são wrappers que contêm algo assim:
/bin/su - opiusr -c "/home/opiusr/bin/start_tomcat -s" >> $LOG_FILE
/bin/su - opiusr -c "/home/opiusr/bin/start_apache -s" >> $LOG_FILE
E esses scripts simplesmente envolvem os scripts de início e parada do tomcat e do apache, com um registro extra.
EDIT: Eu vi esta resposta que é bastante semelhante: Systemd mata serviço imediatamente após o início
Eu estou querendo saber se eu posso fazer outra coisa, visto que o sistema está bem trancado. Tenho acesso completo de edição ao arquivo da unidade e aos dois scripts, mas não a capacidade de criar novos serviços ou tocar nos diretórios do sistema.