Démarrer un serveur Domino en tant que service

Créé le : 19 février 2012
Catégorie: Logiciel
Mise à jour : 11 juillet 2013

Démarrer un serveur Domino en tant que service

Cette page décrit comment lancer un serveur Domino en tant que service mais il est possible de l’adapter pour n’importe quel autre programme (il suffit de faire le script qui va bien avec un start et un stop)

 

Nous avons vu ici comment installer un serveur Domino sur Ubuntu.

Pour l’executer il faut ouvrir une session et lancer quelques commandes à la main ou un script ce qui n’est pas très pratique pour un serveur.

fleche-puceNous allons donc voir comment lancer notre serveur Domino en tant que service (sur Linux on dit lancer en tant que Daemon)

 

Pour les pressés…

Pour ceux qui ne veulent pas tout lire et qui s’en tape de « comment ça marche » voici la procédure rapide pour créer son service Domino

1° Télécharger le script

Le script permet de lancer (start) et d’arrêter (stop) le service. Il permet en plus de lancer la java console pour voir la console en live.

script

2° Enregister le script

  • Adapter le script à votre configuration (les chemins notamment)
  • copier le script dans votre home (changer eventuellement le nom en « domino » : ça sera le nom du service)
  • copier le script dans init.d avec la commande suivante (NE PAS OUBLIER LE POINT À LA FIN)
sudo cp /home/notes/Téléchargements/domino /etc/init.d/.
  • Mettre les droits d’execution avec la commande suivante :
sudo chmod 0755 /etc/init.d/domino

3° Test du script

Démarrage du service

sudo /etc/init.d/domino start

Pour être sûr que le domino démarre, ouvrez le moniteur système pour voir les processus. Vous devriez voir les processus propre à Domino du genre server, router, adminp, event, etc…

domino009

Arrêt du service

sudo /etc/init.d/domino stop

C’est hyper long à s’éteindre (c’est normal), mais à la fin vous devriez avoir « Server shutdown complete »

domino010

4° Ajout du service au démarrage

Maintenant qu’on a testé le démarrage et l’arrêt du service on peut l’automatiser pour qu’il démarre en même temps que le système

sudo update-rc.d domino defaults

Si jamais vous voulez désactiver le service c’est cette commande ci

sudo update-rc.d -f domino remove

 

fleche-puceRedémarrer votre Ubuntu, le service devrait se lancer tout seul

 

5° Création du « raccourci » pour lancer la java console

Sur le bureau faire un document vierge et coller ça:

cd ~/data
/opt/ibm/lotus/bin/jconsole

Rendre le fichier executable (clic droit > propriété > permissions > cocher la case « Autoriser l’exécution… »)

unity005

 

fleche-puceIl vous reste juste à cliquer sur ce mini script pour lancer la console Domino qui tourne en fond

Vous pouvez fermer la console, le Domino continu à tourner, mais NE PAS COCHER LA CASE « arrêter aussi le Domino » sinon, ben…comment dire, ben vous arrêtez le domino quoi!)

Il suffit maintenant de se rappeler de ces 2 commandes :

  • sudo /etc/init.d/domino start
  • sudo /etc/init.d/domino

 

Voilà, pour les fenéants c’est terminé ici…smiley-cool[1]

Pour ceux que ça intéresse y’a ci dessous quelques explications sur ce qu’on a fait et comment ça marche !!!!

 

 

 

Fonctionnement des « services » Linux

Un service est un programme qui tourne en tâche de fond, qui se lance et s’arrête tout seul sans intervention utilisateur. Pour lancer le serveur Domino nous avons vu qu’un petit script peut faire l’affaire, le but est de lancer ce script automatiquement au démarrage de la machine, même sans être loggué avec un utilisateur.

Ubuntu (comme les autres distribution Linux) fonctionne en niveau d’exécution (ou runlevels en anglais)

ubuntu-postit001

 

 

 

Il existe 6 niveaux d’executions sur Linux (hérités d’Unix)

 

 

  • Runlevel 0 : Arrêt de la machine
  • Runlevel 1 : Mode maintenance (mono-utilisateur en ligne de commande)
  • Runlevel 2 à 5 : Mode multi-utilisateur complet avec serveur graphique si installé (le niveau 2 est le mode par défaut)
  • Runlevel 6 : Redémarrage de la machine

Les niveaux 2 à 5 sont par défaut identique, on peut les configurer différements pour reconfigurer sa session selon nos usages (par exemple le runlevel 3 est un mode ultra optimisé pour faire serveur apache, etc…)

~~ Fin du mini cours ~~

 

Notre but est donc de lancer notre script pour les niveaux d’execution 3,4 et 5 mais il faut déjà créer ce fameux script

 

Création du script

Pour lancer le serveur Domino on a vu qu’à la main il suffit de lancer 3 petites commandes

su notes (ou ouvrir une session directement avec l'utilisateur notes)
cd data
/opt/ibm/lotus/bin/server

Le script est un petit plus complexe car il faut, avec le même script, pouvoir démarrer et eteindre le domino

Ci dessous il y a le code du script mais vaut mieux télécharger le script tout fini car il est écrit avec les tabulations etc… (n’oublier pas tout de même à l’adapter à votre configuration)

script

#!/bin/sh
#
# domino    Start/stop the Lotus Domino server
# description:    This script is used to start and stop the domino \
#        server as a background process. It will send \
#        the serverID password from a file to the server.\
#        Communication with the server has to be done through \
#        console, Notes Administrator or webadmin.\
#
# Usage:    /etc/rc.d/init.d/domino start|stop|restart|condrestart
#
# process name: server, ...
#
# Version 1.1, by LB, 2005-01-07, updated by Cyberscooty 2012-02-19

# Change the USER, GROUP, DATA_DIR and BIN_DIR for your server
DOMINO_USER="notes"
DOMINO_GROUP="notes"
DOMINO_DATA_DIR="/home/notes/data"
DOMINO_BIN_DIR="/opt/ibm/lotus/bin"
LOCKFILE="/home/notes/data/lock"

# See if the user that runs this script is root

if [ `id -u` != 0 ]; then 
  echo "Ce script doit être lancer en root"
  exit 1
fi

start() {

# Check we're not already running

    if [ -f $LOCKFILE ] ; then
      echo "Le serveur Domino est déjà en cours d'exécution."
      exit 1
    fi

# Two ways to run the server (comment one of them out)
# 1. With the output of the console redirected to /var/log/domino.log
#    Be sure to change the logrotate daemon.
# 2. With the output of the console redirected to /dev/null

    echo -n "Démarrage du serveur Domino..."

# Version with logfile
#    su - ${DOMINO_USER} -c "cd ${DOMINO_DATA_DIR};\
#      ${DOMINO_BIN_DIR}/server" \
#      >> /var/log/domino 2>&1 &
#    RETVAL=$?
#    if [ "$RETVAL" = "0" ] ; then
#      touch $LOCKFILE > /dev/null 2>&1
#    fi
# Version without logfile
    su - ${DOMINO_USER} -c "cd ${DOMINO_DATA_DIR};\
    ${DOMINO_BIN_DIR}/server -jc" > /dev/null 2>&1 &

    echo "done."
}

stop() {
    echo -n "Arrêt du serveur Domino... "
    su - ${DOMINO_USER} -c "cd ${DOMINO_DATA_DIR}; ${DOMINO_BIN_DIR}/server -q"
    RETVAL=$?
# RETVAL is 38 on normal shutdown - what does *that* mean?
# Users should test this on their own systems . . .
#    if [ $RETVAL -lt 50 ] ; then
#      rm $LOCKFILE
#    fi
}

restart() {
    stop
    start
}

# See how we were called.

case $1 in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  condrestart)
    [ -f $LOCKFILE ] && restart
    ;;
  *)
    echo "Usage: domino {start|stop|restart|condrestart}"
    exit 1
    ;;

esac
# End of the domino script
exit 0

 

 

sources :
http://www.generation-linux.fr/index.php?post/2009/01/22/Cours-Linux-%3A-les-runlevels
http://www.lesbell.com.au/Home.nsf/b8ec57204f60dfcb4a2568c60014ed0f/ac3934bc047107bcca2569f1000f4f78?OpenDocumenthttp://doc.ubuntu-fr.org/tutoriel/comment_transformer_un_programme_en_service
Tags: - -

Laissez un commentaire