2 votes

Comment arrêter une application Java jar qui a été lancée avec la commande suivante

Pour faire fonctionner un serveur de jeu (minecraft), je le démarre en lançant cette commande dans CentOS :

java -Xms512M -Xmx1G -jar minecraft_server.jar

Mais je n'ai aucune idée de la manière d'empêcher l'exécution de ce fichier. Je suppose qu'il a sa propre commande interne, mais étant donné qu'il peut être lancé en arrière-plan et fonctionner pendant très longtemps, comment puis-je arrêter cette commande Java ?

Nous vous remercions.

3voto

Zypher Points 36865

Vous pouvez utiliser une combinaison de ps et de kill pour arrêter le processus en question.

Vous devez d'abord faire ps -aux | grep minecraft pour obtenir le numéro de processus - qui est le deuxième champ, le premier numéro.

Vous pouvez alors émettre kill $PID pour envoyer SIGTERM au processus et l'arrêter de manière élégante.

0voto

teh.fonsi Points 335

Vous pouvez utiliser les 2 fichiers suivants pour démarrer/arrêter service.jar

start.sh

#!/usr/bin/env bash
PID=0
if [ -f './pid' ]; then
    PID=$(cat ./pid)
fi

if ps -p $PID > /dev/null
then
   echo "Service with $PID is already running"
else
    nohup java -jar ./service.jar > service.out 2> errors.txt < /dev/null & PID=$!; echo $PID > ./pid
fi

stop.sh

#!/usr/bin/env bash
if [ -f './pid' ]; then
    PID=$(cat ./pid) && kill -15 $PID
fi

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