# La gestion d'un service

## La base service

Un service est inclut dans un conteneur [services](../services.md).

Cette balise permet de définir tous les éléments ([fichier](file.md), [IP](ip.md), ...) liés à un service ou à démon.

Il faut, à la création du service, préciser son nom :

```
<?xml version='1.0' encoding='UTF-8'?>
<rougail>
    <services>
        <service name="squid"/>
    </services>
</rougail>
```

Un service peut ne pas être géré :

```
<service name="squid" manage="True"/>
```

Un service non géré est généralement une service qui n'existe pas réellement (par exemple si on configure un client).

Un service non géré ne peut conteneur que des fichiers.

## Désactiver la génération d'un service

Il est possible de désactiver un service. Pour cela il faut rajouter l'attribut "disabled" à True :

```
<services>
    <service name="test" disabled="True"/>
</services>
```

Dans ce cas, tous les services et les éléments qu'il compose ([fichier](file.md), ...) seront désactivés.

Il est possible de définir une [condition](../condition/README.md) de type "disabled_if_in" ou "disabled_if_not_in" sur une balise service :

```
<services>
    <service name="test">
    </service>
</services>
<variables>
    <variable name="condition" type="boolean"/>
</variables>
<constraints>
    <condition name="disabled_if_in" source="condition">
        <param>False</param>
        <target type="servicelist">test</target>
    </condition>
</constraints>
```

Dans ce cas, tous les services et les éléments qu'il compose ([fichier](file.md), ...) avec un attribut servicelist à "test" seront désactivés si la variable "condition" est False.