2 votes

L'application java qui s'exécute à l'écran lance un processus et cet enfant n'est PAS à l'écran.

Je fais tourner un serveur spigot en écran, c'est une application java. Lorsqu'il se plante et s'arrête gracieusement, il appelle un script de redémarrage comme dernière action.

Cette script contient simplement une java -jar spigot.jar . Le problème est qu'à chaque fois que le serveur tombe en panne, il redémarre lui-même hors de l'écran . Ce n'est pas bon, je veux que le processus redémarré s'exécute dans le même écran.

J'ai essayé le bon vieux screen -S test -p 0 -X stuff 'java -jar spigot.jar^M' mais il envoie la chaîne de caractères à la console de l'application Java, et non à la ligne de commande.

J'ai donc essayé de détacher cet appel du parent, cette astuce le fait théoriquement : (sleep 20&);java -jar spigot.jar mais aucun résultat.

Alors... je ne sais vraiment pas quoi faire. S'il vous plaît, recommandez.

1voto

totti Points 842

il a envoyé la chaîne à la console de l'application Java, pas à la ligne de commande.

La java a besoin de temps pour sortir.
Redémarrer le script bash -c "sleep 20; screen -S test -p 0 -X stuff 'java -jar spigot.jar^M' "

0voto

KawaiDesu Points 1
# Creates detached session named spigot
screen -S spigot -d -m
# Runs "java -jar spigot.jar" in spigot session
screen -S spigot -X stuff "java -jar spigot.jar^M"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X