1

Je développe actuellement une API REST avec démarrage Spring. Je veux qu'il soit déployé sur google cloud (moteur de calcul). J'ai créé une machine linux virtuelle, installé java 8 et y ai installé mon application de démarrage à ressort. Cela fonctionne très bien mais: mon application est un fichier jar (Tomcat embarqué). Je l'ai lancé avec ceci: java -jar myApp.jar Et ça marche bien. Mais lorsque je ferme le shell sur google cloud, mon application n'est plus disponible. Je voudrais que mon application soit toujours disponible, sans avoir à la lancer chaque fois que je quitte le shell. C'est possible ?Démarrage Spring et déploiement Cloud

image of cloud shell

Répondre

0

Je pense que c'est le même problème que celui-ci Unix Thread.

La réponse rapide est que votre processus est lié au terminal. Lorsque vous le fermez, le processus est tué. Si je cite this answer:

Qu'est-ce que nohup ne, d'autre part, est de séparer efficacement le processus du terminal:

  • Il ferme l'entrée standard (le programme ne sera pas en mesure de lire any> input, même si elle est exécutée au premier plan, elle n'est pas arrêtée, mais recevra un code d'erreur ou EOF).
  • Il redirige la sortie standard et l'erreur standard vers le fichier nohup.out, donc le programme n'échouera pas pour écrire sur la sortie standard si le terminal échoue, donc tout ce que le processus écrit n'est pas perdu.
  • Il empêche le processus de recevoir un SIGHUP (d'où le nom).

, essayez

nohup java -jar myApp.jar & 
+0

merci. Cela fonctionne bien avec votre commande maintenant. – AntonBoarf

+0

@AntonBoarf Veuillez marquer cette réponse comme acceptée si c'est la solution dont vous avez besoin. – Akah

0

Si vous utilisez une machine virtuelle (Google Compute Engine), vous pouvez utiliser un script (chauve-souris dans Windows ou sh sous Linux) pour exécuter la commande java jar, mais vous pouvez utiliser trop moteur conteneur et créez un conteneur docker avec votre application. configurer un dockerfile et déployer. L'environnement de conteneur exécuter votre application automatiquement