--- 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". ---