Como executar um aplicativo .jar como um serviço (Iniciar na inicialização do sistema)

1

Ok, vou fazer isso rápido. Estou desenvolvendo um aplicativo cliente-servidor com um servidor Ubuntu 17.04 como servidor. Nesse servidor há um jarro contendo todo o código do lado do servidor.

O código apenas liga alguns sockets e continuamente escutam pedidos de clientes e criam threads para cada requisição.

O problema é que não consigo colocar o .jar na inicialização do sistema. Eu verifico isso verificando se há portas abertas e nenhuma das portas que eu codifiquei sempre escutam na inicialização.

Eu tentei o seguinte

Aplicativos de inicialização - não funcionaram

Systemd - o script .sh funciona perfeitamente quando eu o executo de forma não usual, o .jar é executado e as portas são abertas, mas quando a inicialização não acontece nada. Usando sudo service bla bla bla start também executa o aplicativo perfeitamente. Ele simplesmente não funciona na inicialização

O destino especificado é graphical.target e a unidade começa DEPOIS mysql.service

Usando o init.d - a merda acontece

Estou no meu juízo final sobre o que fazer. Por favor me ajude, obrigado.

    
por user4442318 18.08.2017 / 08:11

2 respostas

0

Uma maneira simples é fornecida pelo pacote upstart , depois de instalá-lo basta salvar o seguinte script em etc/init/onshutdown.conf :

# /etc/init/onshutdown.conf
start on starting rc RUNLEVEL=2
# execute single command
exec /bin/sh /path/to/mystartup.sh
# alternatively without an extra script
script
  java -jar /path/to/jarfile.jar
  # your commands here
end script

Substitua 2 pelos seus runlevel (s) preferidos (por exemplo, [2345] ). Para mais informações sobre upstart , consulte man 5 init e o livro de receitas inicial .

    
por dessert 18.08.2017 / 08:28
0

i) Crie seu script bash chamado mystartup.sh para executar o arquivo .jar no diretório /etc/init.d/ (login como root)

# vi /etc/init.d/mystartup.sh

ii) Adicione comandos a este script, um por um:

#!/bin/bash

echo “Setting up customized environment…”
fortune

iii) Configuração da permissão executável no script:

# chmod +x /etc/init.d/mystartup.sh

iv) Assegure-se de que este script seja executado toda vez que o sistema Debian iniciar / aparecer:

# update-rc.d mystartup.sh defaults 100

Para ler mais, siga este link

    
por fireball.1 18.08.2017 / 08:23