---
categories: ['OpenBSD','Système','Base']
date: 2020-01-19T16:30:51+02:00
description: "Contrôler les services sous OpenBSD grâce à l'outil de gestion 'rcctl'."
draft: false
include_toc: true
show_comments: false
tags: ['OpenBSD','rcctl']
title: "rcctl : configurer et contrôler les services sous OpenBSD"
translationKey: 'openbsd-rcctl'
---
## Utilisation
Pour rappel, voici les usages les plus courants :
### Activer
* `rcctl enable service`
### Désactiver
* `rcctl disable service`
### Démarrer
* `rcctl start service`
### Redémarrer
* `rcctl restart service`
### Recharger
* `rcctl reload service`
### Arrêter
* `rcctl stop service`
### Paramétrer
Pour configurer un service avec certains drapeaux au démarrage de celui-ci :
* `rcctl set service flags nom_drapeau valeur_drapeau…`
Il peut y avoir sans soucis plusieurs drapeaux et leurs valeurs se suivant,
sans soucis.
Pour connaître les noms des drapeaux d'un service, il est impératif de
lire le manpage correspondant.
### Ordonner
Certains services doivent démarrés avant d'autres, il faut donc les spécifier
les uns devant les autres :
* `rcctl order service1 service2 service…`
---
## Documentation
* {{< anchor "man 8 rcctl" "man-8-rcctl" >}}
### man 8 rcctl
#### Synopsis
* **rcctl** **get**|**getdef**|**set** __service__ | __daemon__ [__variable__ [__arguments__]]
* **rcctl** [**-df**] __action daemon__ __…__
* **rcctl** **disable**|**enable**|**order** [__daemon__ __…__]
* **rcctl** **ls** __lsarg__
#### Description
L'utilitaire **rcctl** peut activer ou désactiver un __service__ du système
de base ou un __démon__ d'un paquet dans [rc.conf.local(8)](http://man.openbsd.org/rc.conf.local.8)
ou afficher sa configuration et son statut. Pour un __démon__, il peut
aussi changer les arguments de ligne de commande, l'utilisateur avec
lequel l'exécuter, le délai "timeout" d'action de [rc.d(8)](http://man.openbsd.org/rc.d.8)
ou appeler son script de contrôle du démon [rc.d(8)](http://man.openbsd.org/rc.d.8).
Les commandes suivantes sont disponibles
*(__variable__ peut être de type **class**, **flags**, **status**, **timeout** ou **user**)* :
* [**-df**] action daemon __…__ : exécute les scripts du __démon__
[rc.d(8)](http://man.openbsd.org/rc.d.8) avec l'argument __action__,
passant par dessus les options spécifiées, s'il y en a.
* **disable** __service__ __…__ | __daemon__ __…__ : alias de **set** __service__|__daemon__ **status off**.
* **enable** __service__ __…__ | __daemon__ __…__ : alias de **set** __service__|__daemon__ **status on**.
* **get** __service__ | __daemon__ [__variable__] : affiche la valeur
du __service__ ou __démon__. Si __variable__ est vide, affiche toutes
les variables et valeurs du __service__ ou du __démon__ dans un format
compatible avec [rc.conf(8)](http://man.openbsd.org/rc.conf.8).
Lorsque __daemon__ est paramétré sur "al", __variable__ ne doit pas
être configurée et **rcctl** affichera toutes les variables des
services et démons.
* **getdef** __service__ | __daemon__ [__variable__] : tout comme get
mais retourne les valeurs par défaut.
* **ls** __lsarg__ : affiche une liste de services et démons correspondant
à __lsarg__, qui peut être un des suivants :
* **all** : tous les services et démons
* **failed** : les démons activés mais arrêtés
* **off** : les services et démons désactivés
* **on** : les services et démons activés
* **started** : les démons fonctionnant
* **stopped** : les démons stoppés
* **order** [__daemon__ __…__] : place les démons du paquet spécifiés
au commencement de __pkg_scripts__. Ils doivent être toujours activés.
Si aucun démon n'est spécifié, affiche l'ordre actuel.
La commande **order** est seulement nécessaire après l'activation
d'un démon qui a besoin d'être exécuté avant un ou plusieurs démons
déjà actifs. Spécifiez le nouveau démon précédé de tout ceux qui doivent
être exécutés avant lui, mais pas de ceux qui en dépendent.
* **set** __service__ | __daemon variable__ [__arguments__] : Pour un
démon, configure la variable du démon avec les arguments spécifiés.
Si __variable__ est déjà paramétrée, la variable du démon est reconfigurée
par les arguments fournis en option ou sa valeur par défaut.
Le **status** __variable__ doit être fourni avec un argument **on**
ou **off**. Il est utilisé pour activer ou désactiver un __service__
ou __démon__ dans [rc.conf.local(8)](http://man.openbsd.org/rc.conf.local.8).
Quand un démon désactivé d'un paquet est activé, il est ajouté à la
fin de __pkg_scripts__. Quand un démon d'un paquet est désactivé, il
est supprimé de __pkg_scripts__ et ses variables sont supprimées,
s'il y en a.
#### Statut de sortie
**rcctl** __action__ retourne un statut de sortie du script du démon
[rc.d(8)](http://man.openbsd.org/rc.d.8).
**rcctl get** __daemon__ | __service__ [**status**] termine avec 0 si le
démon ou service est activé et avec 1 s'il ne l'est pas.
**rcctl getdef** __daemon__ | __service__ [__status__] termine avec 0 si
le démon ou service est activé par défaut et 1 s'il ne l'est pas.
**rcctl ls failed** termine avec 1 si un démon activé ne fonctionne pas.
Autrement, l'utilitaire **rcctl** termine avec 0 en cas de succès, et
supérieur à 0 si une erreur arrive (2 indique un démon ou service non existant).
#### Exemples
Active et paramètre les drapeaux d'[apmd(8)](http://man.openbsd.org/apmd.8) :
```sh
# rcctl set apmd status on
# rcctl set apmd flags -A
# rcctl get apmd
apmd_class=daemon
apmd_flags=-A
apmd_rtable=0
apmd_timeout=30
apmd_user=root
# echo $?
0
```
La manière recommandée pour exécuter une seconde copie d'un démon en particulier
pour un but différent est de créer un lien symbolique vers son script de
contrôle [rc.d(8)](http://man.openbsd.org/rc.d.8) :
```sh
# ln -s /etc/rc.d/snmpd /etc/rc.d/snmpd6
# rcctl set snmpd6 status on
# rcctl set snmpd6 flags -D addr=2001:db8::1234
# rcctl start snmpd6
```
#### Voir aussi
* [rc.conf.local(8)](http://man.openbsd.org/rc.conf.local.8), [rc.d(8)](http://man.openbsd.org/rc.d.8)
#### Histoire
**rcctl** est apparu la première fois dans OpenBSD 5.7.
#### Auteurs
**rcctl** a été écrit par Antoine Jacoutot .
---
*Traduction du manpage [rcctl(8)](http://man.openbsd.org/man8/rcctl.8) !*
---
## Historique
J'ai écrit historiquement cette documentation sur le wiki de la communauté
"OpenBSD Pour Tous".
---