Link simbólico para o arquivo jar e o serviço init.d

0

Estou seguindo as instruções da " Instalação como um serviço init.d (System V) "capítulo do Spring Boot Reference Guide .

Não consigo criar um link simbólico para meu aplicativo Java em init.d on Centos 6.6.

Depois de correr

 sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp

quando tento

 chmod 500 /etc/init.d/myapp

Eu obtenho

chmod: cannot operate on dangling symlink 'myapp'

Quando eu altero as permissões em um arquivo normal em vez do link simbólico assim:

chmod 500 myapp.jar 

O link simbólico, claro, ainda está quebrado e não consigo vê-lo em service --status-all .

Também posso confirmar que o link simbólico não foi criado corretamente porque não consigo iniciar meu aplicativo com

java -jar /etc/init.d/myapp

Nota: Quando copio o jar inteiro para /etc/init.d/ , tudo funciona bem.

Eu nem sei se é considerado "bom" criar um link simbólico para um arquivo jar ou devo apenas copiá-lo para /etc/init.d/?

    
por SeaBiscuit 05.07.2017 / 10:24

1 resposta

2

Para iniciar o aplicativo, não é necessário vincular o arquivo jar. O binário que você deseja iniciar é java com o arquivo jar como um argumento. Para fazer isso, você precisa criar um arquivo init (ou um arquivo de unidade sysyemd do seu sistema usa o systemd). O script deve lidar com pelo menos um argumento de início e um de parada para iniciar e parar seu aplicativo. O início, então, definirá seu java home e outros itens que seu aplicativo precisa e, em seguida, executará o comando java. Há vários modelos disponíveis para scripts de inicialização que você pode usar.

    
por 05.07.2017 / 10:40