Preciso executar um jar java no servidor para me comunicar entre dois aplicativos. Eu escrevi dois scripts de shell para executá-lo, mas depois que inicio esse script, não consigo encerrar / encerrar o processo. Se eu pressionar ctrl+ Cou fechar o console, o servidor será encerrado. Alguém poderia me ajudar como modificar este script para funcionar como um servidor normal?
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
shell
unix
executable-jar
Bernad Ali
fonte
fonte
nohup
deve sempre ser combinado com o redirecionamento de stdout e stderr explicitamente - caso contrário, você não terá controle de para onde vão os logs e acabará com um feionohup.out
criado em qualquer diretório de onde esse script seja invocado.Systemd que agora roda na maioria das distros
Passo 1:
Encontre seus serviços definidos pelo usuário, os meus estavam em
/usr/lib/systemd/system/
Passo 2:
Crie um arquivo de texto com o nome do seu editor de texto favorito
whatever_you_want.service
Etapa 3:
Coloque o seguinte modelo no arquivo
whatever_you_want.service
Passo 4:
Execute seu serviço
como superusuário
fonte
Se você estiver usando o Ubuntu e tiver "Upstart" ( http://upstart.ubuntu.com/ ), você pode tentar isso:
Crio
/var/init/yourservice.conf
com o seguinte conteúdo
Agora você pode emitir os comandos
service yourservice start
eservice yourservice stop
. Você pode/var/log/yourservice.log
verificar se está funcionando.Se você deseja apenas executar o jar a partir do console, sem ocupar a janela do console, basta fazer:
fonte
java -jar /web/server.jar > /var/log/yourservice.log 2>&1 &
Execute em segundo plano e adicione logs ao arquivo de log usando o seguinte:
fonte