mariotruber
(usa Outra)
Enviado em 25/07/2018 - 17:16h
mariotruber escreveu:
Olá, Sou Mário Truber e estou com dificuldades para configurar uma aplicação como service no systemd.
O ambiente é o seguinte:
Estou utilizando o Ubuntu 18.04 e tenho uma aplicação em java que executa um licenciamento de um banco de dados. Preciso que essa aplicação que faz o licenciamento suba junto com o S.O, eu consigo fazer isso facilmente criando um "rc.local" no "/etc", porém quando faço isso e reinicio o S.O, simplesmente trava a reinicialização, na verdade o sistema não consegue encerrar a aplicação e por isso não desliga/reinicia.
Quando eu não configuro a aplicação de licenciamento no "rc.local" e subo ela na "mão" (executando direto o /licenciador.sh) o S.O reinicia/desliga normalmente.
Resumindo a obra, quero automatizar a inicialização da aplicação, mas não posso utilizar o método "rc.local" devida a falha que apresenta na hora de reiniciar o S.O.
As configurações que tentei para iniciar via systemd:
criei no "/etc/systemd/system" o objeto "licenciador.service" e dentro dele coloquei os seguintes parâmetros:
[Unit]
Description=licenciador service
After=network.service
[Service]
Type=simple
ExecStart=/licenciador/jre/bin/java -Xmx256m -DsaveInLog=true -jar /licenciador/licenciador_Plataform.jar &
[Install]
WantedBy=multi-user.target
'''''''''''''''''
Obs:
- a aplicação esta no "/licenciador" conforme descrito no código.
- já tentei outros "types" como oneshot e forking.
- já tentei no "execstart" colocar o "diretório" "/licenciador/licenciador.sh"
- o código do licenciador.sh que funciona subindo na "mão" é o descrito no execstart.
"""""""""
Como o "rc.local" não é mais padrão nesse kernel atualizado do ubuntu, por isso quero configurar o systemd, para ver se a falha na inicialização não ocorre.
Acredito que consegui demonstrar bem meu ambiente.
desde já sou grato pela ajuda.
Olá pessoal, desde já sou grato a ajuda prestada aqui no post.
Consegui efetuar a configuração para que o licenciador seja iniciado e obedeça os comando de um "service" padrão no kernel do Ubuntu 18, conforme apresentei a falha na primeira postagem.
Vou deixar aqui a solução que utilizei. Com ela sanei todas as falha supracitadas e o serviço está respondendo perfeitamente como se fosse nativo.
Você pode usar a mesma metodologia caso utilize ou precise utilizar aplicações "terceiras" no ser Ububtu 16 ou 18 (que eram as distribuições que apresentavam a dificuldade que relatei no primeiro post)
SOLUÇÃO:
1º passo:
navegar até
~: /etc/init.d#
2º passo:
criar o arquivo "licenciador" com permissão (lembrando que no primeiro post tem a instalação do "licenciador" que eu preciso utilizar, você pode ler como "sistema terceiro" que vc precise colocar no boot mas esta enfrentando a mesma dificuldade que relatei anterioremente)
~: touch "licenciador"
~: chmod +x "licenciador"
3º passo:
colar o script abaixo dentro do arquivo "licenciador"
\/ \/ \/ \/
#!/bin/bash
### BEGIN INIT INFO
# Provides: noughy
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start licenciador
# Description: Start licenciador
### END INIT INFO
# /etc/init.d/licenciador
case "$1" in
start )
echo "Starting licenciador service"
#To run it as root:
/noughy/startLicenciador.sh &
;;
stop )
echo "Stopping licenciador"
#To run it as root:
#/path/to/command/to/stop/counter
#Or to run it as some other user:
#/bin/su - username -c /path/to/command/to/stop/counter
#echo "."
kill -9 `ps -ef | grep -i 'noughy' | grep -v grep | gawk '{print $2}'`
;;
*)
echo "Usage: /etc/init.d/licenciador {start|stop}"
exit 3
;;
esac
/\ /\ /\ /\
4º passo:
atribuir ao script de inicialização as permissões de boot no "rc.d"
~: update-rc.d licenciador defaults 2 3 4 5
Agora o "licenciador" ja está sendo inicializado automaticamente e não
apresenta mais a falha de travar o S.O no momento de encerrar o
serviço "licenciador".
Espero que essa minha breve jornada pelos scripts e estruturas do Ubuntu ajudem muitos que se encontram na mesma "pindaiba".
vlw pela força
até a proxima.