Avviare file jar in avvio di Linux

Avviare file jar in avvio di Linux

Mi sono fatto un piccolo server socket in Java in grado di salvare i file in arrivo (nel mio caso un log creato da un altro programma).

Il problema era l'avvio, cioè doveva avviarsi in automatico.

Non sapendo come fare mi rivolto qui e abbiamo iniziato a fare vari tentativi, che vi riporto in sequenza.

Prima ho provato a mettere semplicemente il comando dentro rc.local:

cat /etc/rc.local
#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
#/bin/sleep 15
#/etc/rc.d/sshd start
java -jar /home/casa/server.jar

Provando poi con exec prima del comando, o & alla fine.

Purtroppo non si avviava (nessun problema però se lo avviavo manualmente).

Con zazu abbiamo fatto delle prove con le varibili d'ambiente:

env | grep java
DERBY_HOME=/opt/java/db
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/bin:/opt/java/db/bin:/opt/java/jre/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
JAVA_HOME=/opt/java
J2SDKDIR=/opt/java

aggiungendo queste due righe prima del comando:

$(which env) | $(which grep) java > /tmp/javavars.lst
$(which env) | $(which grep) jre >> /tmp/javavars.lst

Anche così il file no nsi avviava e il file /tmp/javavars.lst rimaneva vuoto.

Ed ecco quindi la soluzione finale di zazu che ha funzionato.

Ho creato una file in /opt di nome launch_server (ovviamente mettetelo dove meglio credete), con dentro questo:

#!/bin/bash

DERBY_HOME=/opt/java/db
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/bin:/opt/java/db/bin:/opt/java/jre/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
JAVA_HOME=/opt/java
J2SDKDIR=/opt/java

java -jar /home/casa/server.jar &

Questo file l'ho poi richiamato in /etc/rc.local:

#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
#/bin/sleep 15
#/etc/rc.d/sshd start
/opt/launch_server

Adesso funziona tutto:

$ ps aux | grep server
root      2864  0.0  1.1 374600 12100 ?        Sl   09:22   0:03 java -jar /home/casa/server.jar

Grazie al mio forum favorito e a zazu e pennega per l'aiuto!!