Execute o arquivo Jar no Ubuntu na inicialização do sistema

-2

Estou tentando fazer com que um arquivo .jar seja executado na inicialização em uma máquina Ubuntu, mas não estou chegando a lugar algum. Eu tentei as instruções aqui https://askubuntu.com/questions/99232/how-to-make-a-jar-file-run-on-startup-and-when-you-log-out , e eu ' tentei usar as informações do site Upstart e do livro de receitas, mas elas não funcionaram. Eu tentei o SysV antigo e o novo Upstart, mas nenhum deles inicia o .jar na inicialização do sistema.

Aqui está o script de shell que executa o arquivo .jar

#!/bin/bash

java -jar TransformationServer.jar

O arquivo para a abordagem de inicialização do SysV

#!/bin/bash
# Transformation Server
# 
# Description: Transforms incoming messages on a given port and forwards them

case $1 in
    start)
        /bin/bash /usr/local/bin/ServerStart.sh
    ;;
    stop)
        /bin/bash /usr/local/bin/ServerStop.sh
    ;;
    restart)
        /bin/bash /usr/local/bin/ServerStop.sh
        /bin/bash /usr/local/bin/ServerStart.sh
    ;;
esac
exit 0

Abordagem UpStart

# transformationserver - transforms incoming http messages, and redirects them
#
# This service intercepts incoming http messages on a given port, and
# transforms them into an acceptable format in order to be received
# by a 3rd party service

start on runlevel [345]
stop on runlevel [!2345]

respawn

script
    exec /bin/bash /home/ubuntu/TransformationServer/ServerStart.sh
    # Also trying the below as well
    #exec /bin/java -jar /home/ubuntu/TransformationServer/TransformationServer.jar
end-script

Alguém com mais experiência no uso de qualquer uma dessas abordagens pode examinar meus arquivos aqui e, potencialmente, apontar-me na direção certa com isso? Este serviço é necessário para que o sistema de nossa empresa possa receber com êxito as comunicações de um de nossos clientes.

Desde já, obrigado.

Shane Van Wyk
fonte

Respostas:

1

Que tal você usar o crontab?

Como o usuário em que você deseja que o jar seja executado, execute o seguinte:

crontab -e

Adicione a linha:

@reboot /path/to/your/ServerStart.sh

Salve isso. Isso fará com que, quando o servidor voltar após a reinicialização, ele executará seu shell script.

Este é o seu crontab, você pode aprender tudo sobre ele com o man crontab ou a página da Wikipedia: https://en.wikipedia.org/wiki/Cron

Tillman32
fonte