2 votes

Exécution d'un processus au démarrage

Désolé si cette question est un peu basique, je suis assez inexpérimenté avec Ubuntu et Linux en général.

Je cherche à mettre à niveau un serveur d'application de JBoss EAP 5 vers Jboss EAP 6. Nous avons précédemment envoyé des instructions aux clients pour qu'ils exécutent JBoss EAP 5 au démarrage, je cherche donc à faire de même pour JBoss EAP 6. J'ai réussi à le faire fonctionner d'une manière, en ajoutant la ligne suivante à /etc/rc.local :

sh /opt/jboss-eap-6.1/bin/domain.sh

Bien que d'après ce que j'ai lu, ce n'est pas vraiment une approche recommandée. D'après ce que je peux comprendre, l'approche que nous avons utilisée pour JBoss 5 consistait à placer un lien symbolique dans les répertoires d'initialisation du niveau d'exécution ( /etc/rc2.d/ par exemple) qui faisait référence à un autre script en /etc/init.d pour démarrer le service.

J'ai essayé ceci pour JBoss 6.1, et bien que si je lance manuellement le processus avec " sh /etc/rc2.d/S01jboss6.1 "JBoss commence à fonctionner, ce processus ne se lance pas de lui-même au démarrage.

Je crois que j'ai raison de penser qu'Ubuntu démarre au niveau d'exécution 2, donc n'est-ce pas le cas que ce script dans /etc/rc2.d/ devrait s'exécuter lorsque l'OS est démarré ?

Merci.

0voto

Johannes Points 323

Je ne connais pas JBoss. Est-ce que votre script est un one shot ou est-ce qu'il continue à tourner ? Pour les services qui restent au premier plan (sur un terminal) et restent en cours d'exécution, vous pouvez écrire un service upstart quelque chose comme ce qui suit. Si c'est un one shot ou qu'il génère un processus daemon, vous devez modifier le start script ci-dessous, sinon upstart n'aura pas le contrôle du processus ou essaiera de l'exécuter plusieurs fois.

Le script doit être exécutable et dans /etc/init/myscript.conf. Ensuite, faites un lien symbolique de /etc/init.d/myscript vers /lib/init/upstart-job

ln -s /lib/init/upstart-job /etc/init.d/myscript

Vous pouvez lancer votre script comme ceci : service myscript start

description     "myscript"
author          "you"

start on (local-filesystems and net-device-up)
stop on runlevel [!2345]

kill timeout 50

respawn
respawn limit 1 5

env USER="user"
env PIDFILE="/var/run/myscript.pid"
env DAEMON="path/to/script"

pre-start script
  do smothing
end script

# starting ...
exec start-stop-daemon --start --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- all my options 2>&1 >> /var/log/my.log

pre-stop script
        do something
        sleep 2
end script

# spring clean
post-stop exec rm -f $PIDFILE

Pour plus d'informations, voir : http://upstart.ubuntu.com/cookbook/

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