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
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é!
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.
/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.
/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.
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.
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.
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
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.
À 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