##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ## Des outils pour contrôler les services unix ##@cooked nocomments uprovide service urequire sysinfos function __service() { # Appliquer la commande $2 au service $1, e.g. 'service daemon restart' # Si la variable SERVICE_OVERRIDE_$1_$2 existe, utiliser la fonction dont le # nom est donnée par cette variable pour faire l'opération. Si la valeur est # 1, prendre la fonction nommée SERVICE_OVERRIDE_$1_$2 # Pour information, le nom de la variable est corrigé en remplaçant '-' par # '_'. Ceci permet d'utiliser des noms de services avec des '-' dans leur # nom. # XXX ajouter le support de MacOS X local overriden="SERVICE_OVERRIDE_${1}_${2}" overridef overriden="${overriden//-/_}" overridef="${!overriden}" if [ -n "$overridef" ]; then [ "$overridef" == 1 ] && overridef="$overriden" "$overridef" "$@" elif [ -x /usr/sbin/service ]; then /usr/sbin/service "$@" else local script="$1"; shift "/etc/init.d/$script" "$@" fi } function service() { if [ "$2" == check ]; then __service "$1" status >&/dev/null elif [ "$2" == startm ]; then __service "$1" status >&/dev/null || __service "$1" start elif [ "$2" == stopm ]; then __service "$1" status >&/dev/null && __service "$1" stop elif [ "$2" == restartm ]; then __service "$1" status >&/dev/null && __service "$1" restart else __service "$@" fi } function service_start() { # démarrer le service $1 de façon inconditionnelle service "$1" start } function service_startm() { # démarrer le service $1 s'il n'est pas déjà démarré service "$1" startm } function service_stop() { # arrêter le service $1 de façon inconditionnelle service "$1" stop } function service_stopm() { # arrêter le service $1 s'il n'est pas déjà arrêté service "$1" stopm } function service_reload() { # recharger le service $1 service "$1" reload } function service_status() { # tester/afficher le status du service $1 service "$1" status }