web-dev-qa-db-fra.com

Commencez Tomcat au démarrage avec des privilèges administratifs

J'ai besoin d'un processus d'exécution avant de vous connecter au système. Comment exécuter-le comme des services? Comment faire des services sous Linux?

À Ubuntu et Fedora? Le service est personnalisé tomcat

23
Sajad Bahmani

Pour exécuter un service Sans ou avant Connexion dans le système (c'est-à-dire "On Boot"), vous devez créer un script de démarrage et l'ajouter à la séquence de démarrage.
Il y a trois parties à un script de service: commencer, arrêter et redémarrer.
[.____] La structure de base d'un script de service est la suivante:

#!/bin/bash
#
RETVAL=0;

start() {
echo “Starting <Service>”
}

stop() {
echo “Stopping <Service>”
}

restart() {
stop
start
}

case “$1″ in
start)
  start
;;
stop)
  stop
;;
restart)
  restart
;;
*)

echo $”Usage: $0 {start|stop|restart}”
exit 1
esac

exit $RETVAL  

Une fois que vous avez modifié le script à votre goût, placez-le dans /etc/init.d/
Et, ajoutez-le au processus de démarrage du service système (sur Fedora, je ne suis pas un utilisateur Ubuntu,> D):

chkconfig -add <ServiceName>  

Le service sera ajouté au processus de démarrage du système et vous n'aurez plus à recommencer manuellement.

À votre santé!

23
wormintrude

Selon le système Init, vous créez une autre script différemment. Fedora vous donne la possibilité de choisir et de la compatibilité SYSV.

Parvenu

  • créer un fichier de définition de service comme /etc/init/custom-Tomcat.conf
  • mettre dedans:

    start on stopped rc RUNLEVEL=3
    respawn
    exec /path/to/your/Tomcat --and --parameters
    

Et votre tomcat devrait commencer sur le démarrage du système.

Systémique

  • créer une définition de service dans /etc/systemd/system/custom-Tomcat.service
  • mettre dedans:

    [Service]
    ExecStart=/path/to/your/Tomcat --and --parameters
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

et activez votre service à l'aide de systemctl enable custom-Tomcat.service. Il sera lancé chaque démarrage normal.

Bien sûr, il existe peu d'options de configuration supplémentaires pour les deux systèmes init, vous pouvez les vérifier dans leur documentation.

19
zdzichu

Tomcat est un service assez commun, je recommande la recherche au script fourni par le distro déjà. Il y a des chances qu'il fonctionne avec votre binaire sur mesure, avec peu ou pas de peaufinage.

7
xenoterracide

Pour simplement exécuter un script après le début de l'ordinateur, mais avant qu'un utilisateur se connecte, vous pouvez simplement modifier le script /etc/rc.local, qui est destiné à résoudre exactement cette tâche.

6
fschmitt

Si vous avez un cron démon, l'un des crochets de temps cron prédéfinis est @reboot, qui fonctionne naturellement lorsque le système commence. Courir crontab -e Pour modifier votre fichier crontab et ajouter une ligne:

@reboot /your/command/here
6
Michael Mrozek

Vous pouvez créer un script plus sophistiqué, ce qui vous permet de courir sous des autorisations d'un utilisateur spécifiques, comme suit:

#!/bin/sh
NAME=myservice
DESC="My Service"
USERGROUP="myservice:myservice"

#Helper functions
start() {
        start-stop-daemon --start --quiet --background --make-pidfile \
                --pidfile /var/run/$NAME.pid --chuid $USERGROUP \
                --exec /usr/local/bin/myservice
}

stop() {
        start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
                --exec myservice --retry 30
}

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        stop
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        #set +e
        stop
        #set -e
        #sleep 1
        start

        echo "$NAME."
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0

Le script va dans /etc/init.d/myservice, et vous commencez le service en exécutant:

/etc/init.d/myservice start

Lisez la page d'homme sur Démarrer-Stop-Daemon pour comprendre comment cela fonctionne.

3
Mr Ed

À Ubuntu ou Debian comme vous pouvez utiliser, ajouter

update-rc.d your_service defaults

retirer

update-rc.d -f your_service remove

Au revoir!\o

est agréable d'implémenter l'état des fonctions et la force de force à être compilant LSB

1
MaikoID