2009-03-12 36 views
2

J'ai hérité d'un système java qui devrait être exécuté en arrière-plan sur un serveur Linux. Les directions appellent à ce qu'il soit démarré java -jar start.jar. Cela semble un peu trop fragile à mon goût. Je voudrais qu'il fonctionne en arrière-plan, idéalement en démarrant automatiquement au démarrage.Processus java longue durée

Quelle est la meilleure façon d'y parvenir? J'ai examiné le fonctionnement du système dans un environnement screen, qui fonctionne bien, mais ne démarre pas automatiquement lorsque le système redémarre.

Répondre

7

Vous pouvez écrire un script init.d pour cela! (Les scripts init.d sont démarrés dans des niveaux d'exécution spécifiés au démarrage)

Ou vous pouvez le démarrer en arrière-plan avec & à la fin de la commande.

java -jar start.jar & 

Quel type de distribution utilisez-vous? Debian?

Jetez un oeil à: Creating your own init.d script

+1

Vous voulez dire init.d - initrd (ramdisk initial) est une chose complètement différente. –

1

Au moins sur ubuntu, je mettrais cette commande dans le fichier /etc/rc.local avec un & à la fin.

1

+1 à l'aide d'un script init.d

Vous devriez également envisager d'utiliser jsvc (http://commons.apache.org/daemon/jsvc.html) dans votre script init.d pour vous permettre d'utiliser des ressources privilégiées tout en exécutant le service en tant qu'utilisateur non privilégié. jsvc est livré avec au moins Debian et Ubuntu.