Catégories
Open-source Systeme

Création d’un script de démarrage sous Linux

Dans cet article nous allons voir comment automatiser le démarrage d’un service ainsi que son arrêt sur un système GNU/Linux (plus particulièrement sur une distribution Ubuntu 8.04 Server).

A titre d’exemple, nous allons voir comment lancer un portail Liferay au démarrage de la machine, et comment l’arrêter proprement lors d’un reboot ou d’un shutdown.

Création du script

Nous allons donc créer un script nommé ‘liferay‘ que l’on va placer dans le répertoire /etc/init.d .

#!/bin/sh

# le nom du service
SERVICE_NAME=Liferay
# le répertoire où se trouvent les exécutables du service
SERVICE_DIRECTORY=/opt/Portal/bin
# le nom du script de démarrage du service
SERVICE_STARTUP_SCRIPT=startup.sh
# le nom du script d'arrêt du service
SERVICE_SHUTDOWN_SCRIPT=shutdown.sh

usage()
{
        echo "-----------------------"
        echo "Usage: $0 (stop|start|restart)"
        echo "-----------------------"
}

if [ -z $1 ]; then
        usage
fi

service_start()
{
        echo "Starting service '${SERVICE_NAME}'..."
        OWD=`pwd`
        cd ${SERVICE_DIRECTORY} && ./${SERVICE_STARTUP_SCRIPT}
        cd $OWD
        echo "Service '${SERVICE_NAME}' started successfully"
}

service_stop()
{
        echo "Stopping service '${SERVICE_NAME}'..."
        OWD=`pwd`
        cd ${SERVICE_DIRECTORY} && ./${SERVICE_SHUTDOWN_SCRIPT}
        cd $OWD
        echo "Service '${SERVICE_NAME}' stopped"
}

case $1 in
        stop)
                service_stop
        ;;
        start)
                service_start
        ;;
        restart)
                service_stop
                service_start
        ;;
        *)
                usage
esac
exit 0

Maintenant, il faut donner les permissions d’exécution sur ce script

# chmod a+x /etc/init.d/liferay

Automatisation

Maintenant que le script est créé, il ne reste plus qu’à faire en sorte que le service se lance au démarrage de la machine et qu’il se stoppe à l’arrêt de celle-ci. Le runlevel qui nous intéresse ici est le numéro 2, mais on peut appliquer cette configuration pour les autres.

Il existe 2 méthodes pour procéder: la première consiste à créer des liens symboliques à la main dans le répertoire /etc/rc2.d en respectant les conventions de nommage, et la seconde (plus simple), consiste à utiliser la commande update-rc.d (c’est cette méthode que nous allons utiliser).

Avant tout chose, il faut déterminer le moment exact où le script s’exécutera:

  • Démarrage du service
    Le service liferay doit se lancer une fois que le serveur de base de données est démarré (en l’occurrence, il s’agit de MySQL).
    En regardant dans le répertoire /etc/rc2.d, on voit que le service mysql démarre à la position 19 (ce numéro peut changer suivant les configurations), donc nous allons démarrer le service liferay à la position 20.
  • Arrêt du service
    Le service liferay doit s’arrêter avant que le serveur de base de données ne s’arrête.
    En regardant dans le répertoire /etc/rc6.d (le runlevel 6 est consacré à l’arrêt de la machine), on voit que le service mysql s’arrête en position 18. Nous allons donc arrêter le service liferay en position 17.

Voici donc la commande qui permet de configurer le service comme décrit précédemment:

# update-rc.d liferay start 20 2 . stop 17 6 .

Désactiver un service

Pour désactiver le lancement automatique d’un service au démarrage, il existe 3 possibilités:

  • utiliser la commande update-rc.d
    # update-rc.d -f liferay remove
  • supprimer le lien symbolique du répertoire /etc/rcX.d (où X représente le numéro de runlevel désiré)
  • retirer les permissions d’exécution sur le script situé dans le répertoire /etc/init.d

Pour plus d’infos, consulter la documentation de la commande update-rc.d.

Catégories
Developpement Open-source Systeme

Installation de Java 1.6 sous Debian et Ubuntu

Si comme moi vous devez faire tourner des applications seulement compatible avec Java 6 (c’est à dire Java 1.6) sur vos machines Debian et Ubuntu, et que vous n'avez pas de masters java en poche, la petite procédure suivante devrait vous être utile. En effet, ces deux distributions sont, à l’heure de l’écriture de ce billet, livré par défaut avec la version 1.5. Nous allons voir comment installer la JDK de Sun et la faire prendre par défaut par le système.

Installation de Sun Java 1.6

Pour installer la JRE (seulement pour l’exécution de programme Java):

sudo apt-get install  sun-java6-jre

Pour installer et compiler (bref pour les developpeurs):

sudo apt-get install sun-java6-sdk

Pour rendre Sun Java 1.6, la JVM par défaut

La commande est la même sur les deux distributions (Ubuntu et Debian):

sudo update-alternatives –config java

> Puis choisir /usr/lib/jvm/java-6-sun/jre/bin/java

On vérifie que tout est ok:

# java -version

java version « 1.6.0_12″

Et voili…

Catégories
Open-source Reseau

Outil pour la mesure de la QoS sur les réseaux IP

La qualité de service (QoS pour « Quality of service ») est la capacité à véhiculer dans de bonnes conditions un type de trafic donné en termes de disponibilité, débit, délai de transmission, gigue, taux de perte de paquets… (source Wiki)

La notion de qualité de service est une notion subjective, de ressenti utilisateur face à l’utilisation d’un système informatique. Il n’est pas trivial de mesurer cette QoS. Nous allons dans ce billet aborder quelques outils libres permettant d’obtenir des indicateurs chiffrés en nous focalisant sur la problématique des réseaux IP.

Ou faire les mesures ?

Première question à se poser quand on doit faire ce genre de mesure. La réponse dépend bien sûr de votre architecture. Souvent, l’on souhaite vérifier la QoS sur une liaison WAN( par exemple un liaison de type _DSL vers votre FAI). Dans ce cas précis, la mesure pourra être faite sur votre routeur d’accès, c’est à dire juste avant la liaison. En effet, celà permet de prendre en compte tous les flux de votre réseau. Il faut pour celà disposer d’un routeur d’accès sur lequel on peut installer les outils de mesures (par exemple un routeur/firewall basé sous Linux ou FreeBSD). Si ce n’est pas le cas, il est toujours possible de mettre un PC (sous Linux) en coupure entre votre switch réseau et votre routeur/modem.

Quoi mesurer ?

Pour un réseau en fonctionnement (c’est à dire que l’on écarte la disponibilité), on peut distinguer quatres grandes variables:

  • le débit: c’est la bande passante utilisé par un flux. Celle-ci peut être constante ou variable.
  • le délai de transit des paquets IP: dans un réseau IP, les données sont segmentées en paquets. Le délai de transit est le temps mis par uhn paquet pour aller d’un point A vers un point B.
  • la gigue dans un flux de paquets IP: c’est la variation du délai de transit entre plusieurs paquets IP. Ce paramètre est très important pour les applications de voix sur IP (VoIP) car les codecs de compression de la voix sont très sensibles à la gigue.
  • la perte de paquets: c’est le pourcentage de paquets IP perdus sur le réseau.

Comment tester ?

Plusieurs solutions sont possibles. La première consiste à utiliser les logiciels qu l’on souhaites tester sur son réseau. On peut le faire de manière manuelle ou automatique (via des scripts par exemple). L’important est de générer des flux qui soient représentatifs de l’utilisation standard de votre réseau.

Une autre solution est de simuler les flux à l’aide d’un outil comme Iperf qui est capable de générer un flux IP finement paramètrable sur le réseau. Par finement on entend:

  • Protocole: UDP, TCP, ICMP…
  • Port réseau
  • Taille des paquets de données
  • Débit
  • Temps
  • Tag du champ DSCP (dans le cadre d’un réseau compatible Diffserv)

Pour vous aider dans l’utilisation de ce logiciel, vous pouvez lire les billets suivants:

Comment mesurer ?

Iperf permet de générer en sortie un rapport sur quelques uns de ces paramètres, notamment le débit (moyen, minimum et maximum) et le délai. L’idée générale et de faire un plan de test avec les différentes configurations possible en terme d’utilisation et de QoS et de regarder les valeurs obtenues en sorties. En complément de Iperf, vous pouvez utiliser SJitter pour la mesure de la gigue réseau.

En complément de IPerf, il peut être utile d’utiliser un logiciel de capture réseau tel que Wireshark. En effet, grâce à ce dernier, vous pouvez sauvegarder les flux et les filter/analyser avec les nombreux modules disponibles.

Voici un tableau, basée sur mon expérience personnelle, des valeurs à prendre en compte lors de vos mesures.


Et vous quel est votre expérience sur le sujet ? Utiliser vous d’autres logiciels libres pour mesurer les performances de votre réseau ?

Catégories
Blog

Blog en pause

Depuis cette nuit, je suis papa pour une deuxième fois ! Je vais donc avoir « un peu » moins de temps à consacrer au blog et au forum dans les prochaines semaines. Je ne doute pas que certains lecteurs actifs feront vivre le forum pendant mon absence.

Restez quand même en ligne !

Catégories
Open-source

Actualité open-source de la semaine #53

L’actualité open-source de la semaine…

L’image de la semaine

HADOPI - Le Net en France : black-out

HADOPI c’est pas bien… un bien beau buzz

Tout le monde en parle, sauf moi…

L’actualité du libre et de l’open source en vrac:

Autres choses ?

Catégories
Uncategorized

Noir c’est noir…

Le blog de Nicolargo soutient le mouvement contre le projet de loi HADOPI.

HADOPI - Le Net en France : black-out
Catégories
Open-source Systeme

Installation des drivers nVidia sous Debian 5.0

En attendant que nVidia ne libére le code de ses drivers, il est nécessaire de faire quelques manipulations pour les installer sur des systèmes d’exploitation de type GNU/Linux.

Les drivers des cartes graphiques nVidia n’étant pas inclus dans les paquets par défaut dans la dernière version de Debian 5.0 (Lenny), il est nécessaire d’effectuer quelques manipulation en ligne de commande pour les installer sur votre système.

J’ai choisi une solution permettant de ne pas à avoir à réinstaller les drivers à chaque mise à jour du noyau de Debian.

Toutes les actions suivantes doivent être faites en mode root:

# su – root

Installation des dépôts

La première chose à faire est d’ajouter les lignes suivantes à votre fichiers listant les dépôts APT:

# vi /etc/apt/sources.list

deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://www.debian-multimedia.org lenny main contrib non-free
deb-src http://www.debian-multimedia.org lenny main contrib non-free

On met à jour le système:

# apt-get update

# apt-get upgrade

Installation des paquets nécessaires

Deux paquets sont nécessaires:

# apt-get install nvidia-kernel-common

# apt-get install module-assistant

Lors de l’installation, de nombreux autres paquets dépendants vont être installés.

Activation des drivers nVidia

On doit maintenant activer les drivers proprétaires avec la commande suivante:

# module-assistant auto-install nvidia

Puis vérifier qu’ils se charge bien:

# modprobe nvidia

# lsmod | grep nvidia
nvidia

Il ne reste plus qu’a les ajouter à votre configuration de Xorg:

# vi /etc/X11/xorg.conf

Section « Device »
Identifier    « Configured Video Device »
Driver        « nvidia »
Option        « NoLogo »    « True »
EndSection

Vous pouvez maintenant redémarrer votre système.

# reboot

Les drivers nVidia devraient être chargé automatiquement.

Catégories
Open-source Systeme

Graver des fichiers au format .IMG

Si vous avez besoin (comme moi ce matin) de graver sur une CD ou un DVD une image disque au format .IMG (UDF filesystem data) en utilisant votre PC sous Ubuntu, alors la petite procédure suivante devrait vous intéresser.

Installation des logiciels

Nous allons utiliser les utilitaires UDF:

# sudo apt-get install udftools

Utilisation du logiciel pour graver un .IMG sur un DVD

Supposons que l’on veuille graver l’image disque stockée dans le fichier /tmp/image.img

Il faut pour cela saisir la commande suivante (après avoir inséré un DVD vierge dans votre garveur de DVD…):

# growisofs -Z /dev/dvd=/tmp/image.img

Et voili

Catégories
Open-source

Actualité open-source de la semaine #52

L’actualité open-source de la semaine…

L’image de la semaine


Lenny is here…

Tout le monde en parle, sauf moi…

L’actualité du libre et de l’open source en vrac:

  • Debian Lenny (Debian 5) est (enfin) sortie en version stable
  • Le prochain Ubuntu (9.04), 20% plus rapide… enfin presque…
  • Red Hat et Microsoft font copain/copain
  • Microsoft Windows 7 va prochainement sortir en RC, j’ai comme l’impression qu’ils veulent vite oublier Vista 🙂
  • Wine, l’émulateur Windows pour Linux et Mac OS X passe en version 1.1.15

Autres choses ?

Catégories
Open-source Systeme

Installation de GStreamer sur Mac OS X

Update: Il existe maintenant un binaire d’installation de GStreamer sous Mac OS X !

http://www.itee.uq.edu.au/~davel/gstreamer/

 

Il n’existe pas de package de distribution officiel de GStreamer sous Mac OS X. Les versions disponibles dans les MacPorts sont anciennes et incomplètes. Nous allons donc dans ce billet voir comment installer GStreamer et ses plugins sur un Mac OS X.

Pre-requis

Il faut un certain nombre de pré-requis système pour compiler et installer GStreamer. La première chose à faire est d’installer les MacPorts (disponibles ici).

Ensuite, il faut ouvrir un terminal est saisir les commandes suivantes:

# sudo port install gzip m4 perl5.8 pkgconfig bison flex gettext glib2 libiconv libxml2 py25-gobject py25-numeric python25 zlib liboil libogg libtheora libvorbis cdparanoia

 

puis:

# sudo port install libcdio aalib flac jpeg libcaca libdv libpng libshout2 speex taglib wavpack XviD libdts faac faad2 libmusicbrainz neon libsdl a52dec lame libmpeg2 libmad libid3tag libdvdread

 

Pour installer le support de la librairie X.264, j’ai du faire:

# sudo port
> install x264
—>  Fetching yasm
—>  Attempting to fetch yasm-0.7.2.tar.gz from http://arn.se.distfiles.macports.org/yasm
—>  Verifying checksum(s) for yasm
—>  Extracting yasm
—>  Configuring yasm
—>  Building yasm
—>  Staging yasm into destroot
—>  Installing yasm @0.7.2_0
—>  Activating yasm @0.7.2_0
—>  Cleaning yasm
—>  Fetching x264
—>  Attempting to fetch x264-snapshot-20080724-2245.tar.bz2 from ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
—>  Verifying checksum(s) for x264
—>  Extracting x264
—>  Configuring x264
—>  Building x264
—>  Staging x264 into destroot
—>  Installing x264 @20080724_1
—>  Activating x264 @20080724_1
—>  Cleaning x264

 

Installation de GStreamer

GStreamer est composé de plusieurs packages:

On va commencer par récupérer les dernières versions disponibles sur le site officiel. On moment de l’écriture de ce billet, j’ai:

On télécharge donc tout ce beau monde:

# cd
# mkdir src
# cd src
# wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.22.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.22.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.13.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.10.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.10.tar.gz

 

Puis on commence par compiler GStreamer:

# tar zxvf gstreamer-0.10.22.tar.gz
# cd gstreamer-0.10.22
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

puis on continue avec les plugins-base:

# cd ..
# tar zxvf gst-plugins-base-0.10.22.tar.gz
# cd gst-plugins-base-0.10.22
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

… et les plugins-good:

# cd ..
# tar zxvf gst-plugins-good-0.10.13.tar.gz
# cd gst-plugins-good-0.10.13
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

… et les plugins-ugly:

# cd ..
# tar zxvf gst-plugins-ugly-0.10.10.tar.gz
# cd gst-plugins-ugly-0.10.10
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

… et les plugins-bad:

# cd ..
# tar zxvf gst-plugins-bad-0.10.10.tar.gz
# cd gst-plugins-bad-0.10.10
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

Vous devriez vous retrouver avec environ:

# gst-inspect-0.10

Nombre total :147 greffons, 439 fonctionnalités

 

Source: ce billet se base en grande partie sur ce Wiki.