Processo Java di lunga durata
-
11-07-2019 - |
Domanda
Ho ereditato un sistema java che dovrebbe essere eseguito in background su un server Linux. Le indicazioni richiedono che venga avviato java -jar start.jar
. Sembra un po 'troppo fragile per i miei gusti. Mi piacerebbe che fosse effettivamente eseguito in background, idealmente avviandosi automaticamente all'avvio.
Qual è il modo migliore per raggiungere questo obiettivo? Ho esaminato l'esecuzione del sistema in un ambiente screen
, che funziona bene, ma non si avvia automaticamente al riavvio del sistema.
Soluzione
Puoi scrivere uno script init.d per questo! (gli script init.d vengono avviati in runlevel specifici al momento dell'avvio)
Oppure puoi avviarlo in background con & amp; alla fine del comando.
java -jar start.jar &
Che tipo di distribuzione usi? Debian?
Dai un'occhiata a: Creazione del tuo script init.d
Altri suggerimenti
Almeno su Ubuntu, inserivo questo comando nel file /etc/rc.local con un & amp; alla fine.
+1 sull'uso di uno script init.d
Dovresti anche considerare l'uso di jsvc ( http://commons.apache.org/daemon/ jsvc.html ) nello script init.d per consentire all'utente di utilizzare risorse privilegiate durante l'esecuzione del servizio come utente non privilegiato. jsvc è in bundle con almeno Debian e Ubuntu.