Maison  >  Article  >  Java  >  Comment exécuter des applications Java en tant que services sous Linux ?

Comment exécuter des applications Java en tant que services sous Linux ?

DDD
DDDoriginal
2024-11-01 23:07:29159parcourir

How do I run Java applications as services on Linux?

Exécuter des applications Java en tant que services sous Linux

Pour garantir un fonctionnement continu et une gestion aisée des applications serveur Java sous Linux, il est souvent souhaitable de exécutez-les en tant que services. Ce guide explore une solution qui répond à ces exigences.

Le besoin de services

Dans un environnement Linux hébergé virtuel, les applications Java peuvent être démarrées manuellement ou via des scripts tels que rc.local, mais cette approche manque de la flexibilité et du contrôle requis pour une maintenance transparente. Pour gérer les applications indépendamment des redémarrages du serveur, envisagez de les exécuter en tant que services.

Création d'un script de service

Pour créer un script de service, procédez comme suit :

#!/bin/sh
SERVICE_NAME=your_service_name
PATH_TO_JAR=full_path_to_jar_file
PID_PATH_NAME=/tmp/your_service_name-pid
case  in
    start)
        echo "Starting $SERVICE_NAME ..."

        # Check if service is already running
        if [ ! -f $PID_PATH_NAME ]; then

            # Execute Java command in the background (daemonize)
            nohup java -jar $PATH_TO_JAR > /tmp/service_name.log 2>&1 &

            # Store PID to track process
            echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        # Check if PID file exists to ensure service is running
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME)
            echo "$SERVICE_NAME stopping ..."

            # Kill process
            kill $PID
            echo "$SERVICE_NAME stopped ..."

            # Remove PID file
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        # Stop service
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME)
            echo "$SERVICE_NAME stopping ..."
            kill $PID
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi

        # Start service
        echo "$SERVICE_NAME starting ..."
        nohup java -jar $PATH_TO_JAR > /tmp/service_name.log 2>&1 &
        echo $! > $PID_PATH_NAME
        echo "$SERVICE_NAME started ..."
    ;;
esac 

Installation

  1. Enregistrez le script ci-dessus sous forme de fichier avec une extension ".sh" (par exemple, "myservice.sh").
  2. Rendez le script exécutable : chmod x myservice.sh.
  3. Copiez le script dans le répertoire approprié (par exemple, /etc/init.d ou /lib/systemd/system).

Utilisation

Pour gérer le service, utilisez les commandes suivantes :

  • Démarrer : /etc/init.d/myservice start ou systemctl start myservice
  • Arrêter : /etc/init.d/myservice stop ou systemctl stop myservice
  • Redémarrer : /etc/init.d/myservice restart ou systemctl restart myservice

Conclusion

Ce guide fournit une solution complète pour exécuter des applications Java en tant que services sur Linux, offrant le contrôle et la flexibilité requis pour une gestion et une maintenance efficaces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn