Eu tenho um script linux que inicia meu serviço:
/home/MyApp/MyAppStart.sh
java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid
Eu tenho um serviço systemd que executará o mesmo comando quando iniciarmos o serviço:
/etc/systemd/system/MyApp.service
[Unit]
Description=My App name
After=syslog.target
[Service]
User=root
Group=root
ExecStart=java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid
StandardOutput=file:/home/logs/stdout
StandardError=file:/home/logs/stderr
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Pergunta 1: O que eu quero do comando é inicializar o jar, imprimir a saída no console e em um arquivo, imprimir o ID do processo em um arquivo.
Pergunta 2: Eu não vejo nenhum log em / home / logs. Como faço para corrigir isso?
Pergunta 3: MyApp.service precisa ter o nome do ambiente (dev / sys / prod) como entrada. Como faço para conseguir isso? Se isso não pode ser alcançado, existe um trabalho?
Pergunta 4: MyAppStart.sh e MyApp.service fazem a mesma coisa, ou seja, posso obter o jar executando executando o script bash ou iniciando o serviço. Em vez de ter duas maneiras de iniciar o jar, posso usar apenas uma. Eu definitivamente preciso do serviço systemd, então posso modificar o script de início para executar o serviço?
Tags services systemd linux shell-script rhel