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