a forking service […] YAJSW (Yet Another Java Service Wrapper) […]
ExecStart=/opt/foo/startup.sh
[…]ExecStop=/opt/foo/shutdown.sh
[…] PID is written to a file […]
Esse tipo de coisa é endêmica com Java e, na verdade, aparentemente com os sistemas Oracle em geral; mas também completamente desnecessário. Você não precisa que os Gerentes de Serviços da Poor Man, escritos em shell script ou Java, sejam executados sob um gerenciador de serviços real. Os arquivos PID são um mecanismo completamente perigoso e frágil. Você não precisa dos scripts startup.sh
e shutdown.sh
e eles acabam empurrando o processo de serviço real para baixo da árvore de processos para um fim sem problemas. Você não precisa de um arquivo de configuração YAJSW adicional. Você não precisa de um mecanismo de log complexo e idiossincrático baseado na saída padrão de buffer na memória.
Seu processo de serviço deve ser gerenciado diretamente pelo gerenciamento de serviço real e não usará o protocolo de prontidão de bifurcação systemd porque quase nada em estado selvagem realmente o utiliza. Não use scripts de shell do wrapper para executar os Gerenciadores de Serviços do Homem Pobre. Não use arquivos PID. Qualquer wrapper de script de shell deve carregar em cadeia, não fork. Seu arquivo de configuração é o arquivo da unidade de serviço systemd, e não algum arquivo de configuração outro . Seu mecanismo de registro é aquele que vem com o gerenciamento de serviços, que captura a saída padrão e o erro padrão e grava seus dados no arquivo.
Leitura adicional
- Jonathan de Boyne Pollard (2015). Envolvendo o Apache Tomcat em muitas camadas extras sem sentido Casa do Horror.
- Jonathan de Boyne Pollard (2015). A casa do sistema de terror . Respostas frequentemente dadas.
- Como evitar que o / usr / bin / env seja marcado nos logs do systemd como o executável
- configure o daemon java com o systemd
- link
- Jonathan de Boyne Pollard (2016). Não use
logrotate
ounewsyslog
neste século. . Respostas frequentemente dadas.