68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
|
##@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
|
||
|
}
|