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
 | |
| }
 | 
