Suivant: Exécution de tâches planifiées, Monter: Services [Table des matières][Index]
Le module (gnu services base)
fournit des définitions de services
pour les services de base qu’on peut attendre du système. Les services
exportés par ce module sort listés ci-dessous.
Cette variable contient une liste de services de base (voir Types service et services, pour plus d’informations sur les objets service) qu’on peut attendre du système : un service de connexion (mingetty) sur chaque tty, syslogd, le démon de cache de noms de la libc (nscd), le gestionnaire de périphériques udev, et plus.
C’est la valeur par défaut du champ services
des déclarations
operating-system
. Habituellement, lors de la personnalisation d’un
système, vous voudrez ajouter des services à ceux de %base-services
,
comme ceci :
C’est le service qui met en place des « fichiers spéciaux » comme
/bin/sh ; une instance de ce service fait partie de
%base-services
.
La valeur associée avec les services special-files-service-type
doit
être une liste de couples dont le premier élément est le « fichier spécial »
et le deuxième sa cible. Par défaut il s’agit de :
`(("/bin/sh" ,(file-append bash "/bin/sh")) ("/usr/bin/env" ,(file-append coreutils "/bin/env")))
Si vous voulez ajouter, disons, /bin/bash
à votre système, vous
pouvez changer cela en :
`(("/bin/sh" ,(file-append bash "/bin/sh")) ("/usr/bin/env" ,(file-append coreutils "/bin/env")) ("/bin/bash" ,(file-append bash "/bin/bash")))
Comme cela fait partie de %base-services
, vous pouvez utiliser
modify-services
pour personnaliser l’ensemble des fichiers spéciaux
(voir modify-services
). Mais la manière la
plus simple d’ajouter un fichier spécial est via la procédure
extra-special-file
(voir ci-dessous).
Utilise target comme « fichier spécial » file.
Par exemple, ajouter l’une des lignes suivantes au champ services
de
votre déclaration de système d’exploitation crée un lien symbolique
/usr/bin/env :
(extra-special-file "/usr/bin/env"
(file-append coreutils "/bin/env"))
Renvoie un service qui paramètre le nom d’hôte à name.
Installez les polices données sur les ttys spécifiés (les polices sont par
console virtuelle sur le noyau Linux). La valeur de ce service est une
liste de paires tty/polices. La police peut être le nom d’une police
fournie par le paquet kbd
ou tout argument valide de
setfont
, comme dans cet exemple :
`(("tty1" . "LatGrkCyr-8x16") ("tty2" . ,(file-append font-tamzen "/share/kbd/consolefonts/TamzenForPowerline10x20.psf")) ("tty3" . ,(file-append font-terminus "/share/consolefonts/ter-132n"))) ; pour HDPI
Renvoie un service pour lancer login en suivant config, un objet
<login-configuration>
qui spécifie le message du jour, entre autres
choses.
Le type de données qui représente la configuration de login.
motd
¶Un objet simili-fichier contenant le « message du jour ».
allow-empty-passwords?
(par défaut : #t
)Permet les mots de passes vides par défaut pour que les utilisateurs puissent se connecter au compte « root » la première fois après sa création.
Renvoie un service qui lance mingetty en suivant config, un objet
<mingetty-configuration>
, qui spécifie le tty à lancer entre autres
choses.
C’est le type de données représentant la configuration de Mingetty, qui fournit l’implémentation par défaut de l’écran de connexion des consoles virtuelles.
tty
Le nom de la console sur laquelle tourne ce Mingetty, p. ex.
"tty1"
.
auto-login
(par défaut : #f
)Lorsque la valeur est vraie, ce champ doit être une chaîne de caractère
dénotant le nom d’utilisateur pour lequel le système se connecte
automatiquement. Lorsque la valeur est #f
, il faut entrer un nom
d’utilisateur et un mot de passe pour se connecter.
login-program
(par défaut : #f
)Ce doit être soit #f
, auquel cas le programme de connexion par défaut
est utilisé (login
de la suite d’outils Shadow), soit une gexp
dénotant le nom d’un programme de connexion.
login-pause?
(par défaut : #f
)Lorsque la valeur est #t
en plus de auto-login, l’utilisateur
devrai appuyer sur une touche avant que le shell de connexion ne soit lancé.
clear-on-logout?
(par défaut : #t
)Lorsque la valeur est #t
, l’écran sera nettoyé après la déconnexion.
mingetty
(par défaut : mingetty)Le paquet Mingetty à utiliser.
Renvoie un service pour lancer agetty en suivant config, un objet
<agetty-configuration>
, qui spécifie le tty à lancer, entre autres
choses.
Ce type de données représente la configuration de agetty, qui implémente
l’écran de connexion des consoles virtuelles et series. Voir la page de
manuel de agetty(8)
pour plus d’informations.
tty
Le nom de la console sur laquelle cet agetty fonctionne, sous forme de
chaîne de caractères, par exemple "ttyS0"
. Cet argument est
optionnel, il sera par défaut un port série raisonnable par défaut utilisé
par le noyau Linux.
Pour cela, s’il y a une valeur pour une option agetty.tty
sur la
ligne de commande du noyau, agetty extraira le nom du périphérique du port
série à partir de cette option.
Sinon et s’il y a une valeur pour une option console
avec un tty sur
la ligne de commande du noyau Linux, agetty extraira le nom du périphérique
du port série et l’utilisera.
Dans les deux cas, agetty laissera les autres paramètres du périphérique série (baud, etc.) sans y toucher — dans l’espoir que Linux leur a assigné les bonnes valeurs.
baud-rate
(par défaut : #f
)Une chaîne qui contient une liste d’un ou plusieurs taux de baud séparés par des virgules, en ordre décroissant.
term
(par défaut : #f
)Une chaîne de caractères contenant la valeur utilisée pour la variable
d’environnement TERM
.
eight-bits?
(par défaut : #f
)Lorsque la valeur est #t
, le tty est supposé être propre pour les
caractères 8-bit et la détection de parité est désactivée.
auto-login
(par défaut : #f
)Lorsqu’un nom de connexion est passé comme une chaîne de caractères, l’utilisateur spécifié sera automatiquement connecté sans demande du nom d’utilisateur ni du mot de passe.
no-reset?
(par défaut : #f
)Lorsque la valeur est #t
, ne vide pas les cflags du terminal (modes
de contrôle).
host
(par défaut : #f
)Ceci accepte une chaîne de caractères contenant le "login_host", qui sera écrite dans le fichier /var/run/utmpx.
remote?
(par défaut : #f
)Lorsque la valeur est #t
en plus de host, cette option ajoutera
une option fakehost -r
à la ligne de commande du programme de
connexion spécifié dans login-program.
flow-control?
(par défaut : #f
)Lorsque la valeur est #t
, active le contrôle de flux matériel
(RTS/CTS).
no-issue?
(par défaut : #f
)Lorsque la valeur est #t
, le contenu du fichier /etc/issue ne
sera pas affiché avant de présenter l’écran de connexion.
init-string
(par défaut : #f
)Cette option accepte une chaîne de caractères qui sera envoyée au tty ou au modem avant toute autre chose. Elle peut être utilisée pour initialiser un modem.
no-clear?
(par défaut : #f
)Lorsque la valeur est #t
, agetty ne nettoiera pas l’écran avant de
montrer l’écran de connexion.
login-program
(par défaut : (file-append shadow "/bin/login"))Cette option doit être soit une gexp dénotant le nom d’un programme de
connexion, soit non définie, auquel cas la valeur par défaut est la commande
login
de la suite d’outils Shadow.
local-line
(par défaut : #f
)Contrôle le drapeau CLOCAL. Cette option accepte l’un des trois symboles
comme argument, 'auto
, 'always
ou 'never
. Si la valeur
est #f
, la valeur par défaut choisie par agetty est 'auto
.
extract-baud?
(par défaut : #f
)Lorsque la valeur est #t
, dit à agetty d’essayer d’extraire la taux
de baud depuis les messages de statut produits par certains modems.
skip-login?
(par défaut : #f
)Lorsque la valeur est #t
, ne demande par de nom d’utilisateur. Elle
peut être utilisée avec le champ login-program pour utiliser des
systèmes de connexion non standards.
no-newline?
(par défaut : #f
)Lorsque la valeur est #t
, n’affiche pas de retour à la ligne avant
d’afficher le fichier /etc/issue.
login-options
(par défaut : #f
)Cette option accepte une chaîne de caractères contenant des options passées au programme login. Lorsqu’utilisé avec login-program, soyez conscient qu’un utilisateur malicieux pourrait essayer de rentrer un nom d’utilisateur contenant des options incluses qui pourraient être analysées par le programme de connexion.
login-pause
(par défaut : #f
)Lorsque la valeur est #t
, attend qu’une touche soit appuyée avant de
montrer l’écran de connexion. Cela peut être utilisé avec auto-login
pour sauvegarder de la mémoire en lançant les shells de manière fainéante.
chroot
(par défaut : #f
)Change de racine dans le répertoire donné. Cette option accepte un chemin en tant que chaîne de caractères.
hangup?
(par défaut : #f
)Utilise l’appel système Linux vhangup
pour raccrocher virtuellement
le terminal spécifié.
keep-baud?
(par défaut : #f
)Lorsque la valeur est #t
, essaye de garder le taux de baud existant.
Les taux de baud de baud-rate sont utilisés lorsque agetty reçoit un
caractères BREAK.
timeout
(par défaut : #f
)Lorsque la valeur est un nombre entier, termine la session si aucun nom d’utilisateur n’a pu être lu après timeout secondes.
detect-case?
(par défaut : #f
)Lorsque la valeur est #t
, active le support pour la détection des
terminaux en majuscule uniquement. Ce paramètre détectera qu’un nom
d’utilisateur qui ne contient que des majuscules indique un terminal en
majuscule et effectuera des conversion de majuscule en minuscule. Remarquez
que cela ne fonctionne pas avec les caractères unicode.
wait-cr?
(par défaut : #f
)Lorsque la valeur est #t
, attend que l’utilisateur ou le modem envoie
un retour chariot ou un saut de ligne avant d’afficher /etc/issue ou
l’écran de connexion. Cela est typiquement utilisé avec l’option
init-string.
no-hints?
(par défaut : #f
)Lorsque la valeur est #t
, n’affiche par les astuces à propos des
verrouillages numériques, majuscule et défilement.
no-hostname?
(par défaut : #f
)Par défaut, le nom d’hôte est affiché. Lorsque la valeur est #t
,
aucun nom d’hôte ne sera affiché.
long-hostname?
(par défaut : #f
)Par défaut, le nom d’hôte n’est affiché qu’après le premier point. Lorsque
la valeur est #t
, le nom d’hôte pleinement qualifié renvoyé par
gethostname
ou getaddrinfo
sera affiché.
erase-characters
(par défaut : #f
)Cette option accepte une chaîne de caractères de caractères supplémentaires qui devraient être interprétés comme des effacements lorsque l’utilisateur les tape dans leur nom d’utilisateur.
kill-characters
(par défaut : #f
)Cette option accepte une chaîne de caractères qui devrait être interprétée comme signifiant « ignore tous les caractères précédents » (aussi appelé un caractère « kill ») lorsque l’utilisateur·rice tape son nom d’utilisateur·rice.
chdir
(par défaut : #f
)Cette option accepte, en tant que chaîne de caractères, un chemin vers un répertoire dans lequel se trouvera la commande avant la connexion.
delay
(par défaut : #f
)Cette option accepte, en tant qu’entier, le nombre de secondes à attendre avant d’ouvrir le tty et afficher l’écran de connexion.
nice
(par défaut : #f
)Cette option accepte, en tant qu’entier, la valeur « nice » avec laquelle le
programme login
tourne.
extra-options
(par défaut : '()
)Cette option fournit un « mécanisme de secours » pour que l’utilisateur·rice
puisse ajouter des arguments arbitraires en ligne de commande à
agetty
comme une liste de chaînes de caractères.
rshepherd-equirement
(par défaut : '()
)L’option peut être utilisée pour fournir des prérequis shepherd
supplémentaires (par exemple 'syslogd
) aux services shepherd
'term-
* correspondants.
Renvoie un service qui lance
kmscon d’après
config, un objet <kmscon-configuration>
, qui spécifie le tty
sur lequel tourner, entre autres choses.
C’est le type de données représentant la configuration de Kscon, qui implémente l’écran de chargement de la console virtuelle.
virtual-terminal
Le nom de la console sur laquelle Kmscon tourne, p. ex. "tty1"
.
login-program
(par défaut : #~(string-append #$shadow "/bin/login")
)Une gexp qui dénote le nom d’un programme de connexion. le programme de
connexion par défaut est login
de la suite d’outils Shadow.
login-arguments
(par défaut : '("-p")
)Une liste d’arguments à passer à login
.
auto-login
(par défaut : #f
)Lorsqu’un nom de connexion est passé comme une chaîne de caractères, l’utilisateur spécifié sera automatiquement connecté sans demande du nom d’utilisateur ni du mot de passe.
hardware-acceleration?
(par défaut : #f)S’il faut utiliser l’accélération matérielle.
font-engine
(par défaut : "pango"
)Moteur de polices utilisé dans Kmscon.
font-size
(par défaut : 12
)Taille de police utilisée par Kmscon.
keyboard-layout
(par défaut : #f
)Si la valeur est #f
, Kmscon utilise la disposition du clavier par
défaut — habituellement la disposition anglaise américaine (« qwerty ») pour
un clavier de PC à 105 touches.
Sinon cela doit être un objet keyboard-layout
spécifiant la
disposition du clavier. Voir Disposition du clavier pour plus d’informations sur
la manière de spécifier la disposition du clavier.
kmscon
(par défaut : kmscon)Le paquet Kmscon à utiliser.
Renvoie un service qui lance le démon de cache de services de noms de la
libc (nscd) avec la config donnée — un objet
<nscd-configuration>
. Voir Name Service Switch, pour un exemple.
Parce que c’est pratique, le service du Shepherd pour nscd fournit les actions suivantes :
invalidate
¶Cela invalide le cache donné. Par exemple, en laçant :
herd invalidate nscd hosts
on invalide le cache de noms d’hôtes de nscd.
statistiques
Lancer herd statistics nscd
affiche des informations sur
l’utilisation de nscd et des caches.
C’est la valeur par défaut de <nscd-configuration>
(voir plus bas)
utilisée par nscd-service
. Elle utilise les caches définis par
%nscd-default-caches
; voir plus bas.
C’est le type de données qui représente la configuration du démon de cache de services de noms (nscd).
name-services
(par défaut : '()
)Liste des paquets dénotant des services de noms qui doivent être
visible pour nscd, p. ex. (list nss-mdns)
.
glibc
(par défaut : glibc)Objet de paquet qui dénote la Bibliothèque C de GNU qui fournit la commande
nscd
.
log-file
(par défaut : "/var/log/nscd.log"
)Nom du fichier journal de nscd. C’est là que les sorties de débogage sont
envoyée lorsque debug-level
est strictement positif.
debug-level
(par défaut : 0
)Entier qui dénote le niveau de débogage. Les entiers les plus grands signifient plus de sortie de débogage.
caches
(par défaut : %nscd-default-caches
)Liste d’objets <nscd-cache>
qui dénotent des choses à mettre en cache
; voir plus bas.
Type de données représentant une base de données de cache de nscd et ses paramètres.
database
C’est un symbole qui représente le nom de la base de donnée à mettre en
cache. Les valeurs valide sont passwd
, group
, hosts
et
services
qui désignent les bases de données NSS correspondantes
(voir NSS Basics dans The GNU C Library Reference Manual).
positive-time-to-live
negative-time-to-live
(par défaut : 20
)Un entier qui représente le nombre de secondes pendant lesquelles un résultat positif ou négatif reste en cache.
check-files?
(par défaut : #t
)Indique s’il faut vérifier des mises à jours dans les fichiers correspondant à database.
Par exemple, lorsque database est hosts
, ce drapeau indique à
nscd de vérifier s’il y a des mises à jour de /etc/hosts et de les
prendre en compte.
persistent?
(par défaut : #t
)Indique si le cache devrait être stocké de manière persistante sur le disque.
shared?
(par défaut : #t
)Indique si le cache devrait être partagé entre les utilisateurs.
max-database-size
(par défaut : 32 MiB)Taille maximale en octets de la base de données en cache.
Liste d’objets <nscd-cache>
utilisés par défaut par
nscd-configuration
(voir plus haut).
Elle active la mise en cache persistante et agressive des recherches de services et de noms d’hôtes. Ces derniers fournissent une recherche de noms d’hôtes plus performante, résiliente face à des serveurs de noms peu fiables et une protection de votre vie privée plus efficace — souvent le résultat des recherches de noms d’hôtes sont dans le cache local, donc les serveurs de nom externes n’ont même pas besoin d’être questionnés.
Ce type de données représente la configuration du démon syslog.
syslogd
(par défaut : #~(string-append #$inetutils "/libexec/syslogd")
)Le démon syslog à utiliser.
config-file
(par défaut : %default-syslog.conf
)Le fichier de configuration de syslog à utiliser.
Renvoie un service qui lance un démon syslog en suivant config.
Voir syslogd invocation dans GNU Inetutils, pour plus d’informations sur la syntaxe du fichier de configuration.
C’est le type de service qui lance le démon de construction,
guix-daemon
(voir Invoquer guix-daemon
). Sa valeur doit être
un enregistrement guix-configuration
décrit plus bas.
Ce type de données représente la configuration du démon de construction de
Guix. Voir Invoquer guix-daemon
pour plus d’informations.
guix
(par défaut : guix)Le paquet Guix à utiliser.
build-group
(par défaut : "guixbuild"
)Nom du groupe des comptes utilisateurs de construction.
build-accounts
(par défaut : 10
)Nombre de comptes utilisateurs de construction à créer.
authorize-key?
(par défaut : #t
) ¶Indique s’il faut autoriser ou non les clefs de substituts listées dans
authorize-keys
— par défaut celle de
ci.guix.gnu.org
et bordeaux.guix.gnu.org
(voir Substituts).
Lorsque authorize-key?
est vrai, /etc/guix/acl ne peut pas
être changé en invoquant guix archive --authorize
. vous devez
plutôt ajuster guix-configuration
comme vous le souhaitez et
reconfigurer le système. Cela s’assure que le fichier de configuration de
votre système est auto-contenu.
Remarque : Au démarrage ou la reconfiguration d’un système où
authorize-key?
est vrai, le fichier /etc/guix/acl existant est sauvegardé dans /etc/guix/acl.bak s’il est déterminé qu’il a été modifié manuellement. Cela facilite la migration à partir de versions précédentes, qui permettaient des modifications en-place de /etc/guix/acl.
authorized-keys
(par défaut : %default-authorized-guix-keys
)La liste des fichiers des fichiers de clés autorisées pour les imports
d’archives, en tant que liste de gexps sous forme de chaines
(voir Invoquer guix archive
). Par défaut, elle contient celle de
ci.guix.gnu.org
et bordeaux.guix.gnu.org
(voir Substituts). Voir substitute-urls
ci-dessous pour apprendre
comment la changer.
use-substitutes?
(par défaut : #t
)S’il faut utiliser les substituts.
substitute-urls
(par défaut : %default-substitute-urls
)La liste des URL où trouver des substituts par défaut.
Supposons que vous vouliez récupérer des substituts à partir de
guix.example.org
en plus de ci.guix.gnu.org
. Vous
devrez faire deux choses : (1) ajouter guix.example.org
à
substitute-urls
, et (2) autoriser sa clé de signature, après avoir
effectué les vérifications adéquates (voir Autoriser un serveur de substituts). La configuration ci-dessous fait exactement cela :
(guix-configuration
(substitute-urls
(append (list "https://guix.example.org")
%default-substitute-urls))
(authorized-keys
(append (list (local-file "./guix.example.org-key.pub"))
%default-authorized-guix-keys)))
Cet exemple suppose que le fichier ./guix.example.org-key.pub
contient la clé publique que guix.example.org
utilise pour signer les
substituts.
generate-substitute-keys?
(par défaut : #t
)Indique s’il faut générer une paire de clés de substituts dans /etc/guix/signing-key.pub et /etc/guix/signing-key.sec si elle n’existe pas déjà.
Cette paire de clés est utilisée pour exporter les éléments du dépôt, par
exemple avec guix publish
(voir Invoquer guix publish
) ou
guix archive
(voir Invoquer guix archive
). Générer une paire de
clés prend quelques secondes quand il y a assez d’entropie disponible et
n’est fait qu’une seule fois ; vous pouvez la désactiver par exemple dans
une machine virtuelle qui n’en pas besoin et où le temps de démarrage
supplémentaire peut être problématique.
max-silent-time
(par défaut : 0
)timeout
(par défaut : 0
)Le nombre de secondes de silence et le nombre de secondes d’inactivité, respectivement, après lesquelles un processus de construction son délai d’attente. Une valeur de zéro désactive le délai d’attente.
log-compression
(par défaut : 'gzip
)Le type de compression utilisé par les journaux de construction — parmi
gzip
, bzip2
et none
.
discover?
(par défaut : #f
)Indique s’il faut découvrir les serveurs de substitut sur le réseau local avec mDNS et DNS-SD.
extra-options
(par défaut : '()
)Liste d’options supplémentaires de la ligne de commande pour
guix-daemon
.
log-file
(par défaut : "/var/log/guix-daemon.log"
)Le fichier où les sorties standard et d’erreur de guix-daemon
sont
écrites.
http-proxy
(par défaut : #f
)L’URL du proxy HTTP et HTTPS utilisé pour le téléchargement des dérivés et substituts à sortie fixe.
Il est également possible de changer le proxy du démon au moment de
l’exécution grâce à l’action set-http-proxy
, qui le redémarre :
herd set-http-proxy guix-daemon http://localhost:8118
Pour effacer les paramètres du proxy, exécutez :
herd set-http-proxy guix-daemon
tmpdir
(par défaut : #f
)Un répertoire où guix-daemon
effectuera ses constructions.
Ce type de données représente les paramètres du démon de construction de Guix qui peuvent être étendus. C’est le type d’objet qui doit être utilisé dans une extension du service guix. Voir Composition de services, pour plus d’informations.
authorized-keys
(par défaut : '()
)Une liste d’objets simili-fichiers où chaque élément contient une clé publique.
substitute-urls
(par défaut : '()
)Une liste de chaines où chaque élément est l’URL d’un serveur de substituts.
chroot-directories
(par défaut : '()
)Une liste d’objets simili-fichiers ou de chaines pointant vers des répertoires supplémentaires que le démon de construction peut utiliser.
'()
]Lance udev, qui remplit le répertoire /dev dynamiquement. Les
règles udev peuvent être fournies comme une liste de fichier via la variable
rules. Les procédures udev-rule
, udev-rules-service
et
(gnu services base)
simplifient la création de ces fichiers de règle.
The herd rules udev
command, as root, returns the name of the
directory containing all the active udev rules.
Renvoie un fichier de règle udev nommé file-name contenant les règles définie par le littéral contents.
Dans l’exemple suivant, on définie une règle pour un périphérique USB qui sera stockée dans le fichier 90-usb-thing.rules. La règle lance un script à la détection du périphérique USB avec l’identifiant de produit donné.
(define %example-udev-rule
(udev-rule
"90-usb-thing.rules"
(string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", "
"ATTR{product}==\"Example\", "
"RUN+=\"/path/to/script\"")))
Renvoie un service qui étend udev-service-type
avec rules et
account-service-type
avec groups comme groupes système. Cela
fonctionne en créant un service de type name-udev-rules
, dont
le service renvoyé est une instance.
Nous montrons ici comment cela peut être utilisé pour étendre
udev-service-type
avec la règle précédemment définie
%exemple-udev-rule
.
(operating-system
;; …
(services
(cons (udev-rules-service 'usb-thing %example-udev-rule)
%desktop-services)))
Renvoie un fichier udev nommé file-name contenant les règles définies dans file, un objet simili-fichier.
L’exemple suivant montre comment utiliser un fichier de règles existant.
(use-modules (guix download) ;pour url-fetch (guix packages) ;pour origin …) (define %android-udev-rules (file->udev-rule "51-android-udev.rules" (let ((version "20170910")) (origin (method url-fetch) (uri (string-append "https://raw.githubusercontent.com/M0Rf30/" "android-udev-rules/" version "/51-android.rules")) (sha256 (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003"))))))
En plus, les définitions des paquets de Guix peuvent être inclus dans
rules pour étendre les règles avec les définitions trouvées dans leur
sous-répertoire lib/udev/rules.d. Au lieu de l’exemple
file->udev-rule précédent, on aurait pu utiliser le paquet
android-udev-rules qui existe dans le module (gnu packages
android)
.
L’exemple suivant montre comment utiliser le paquet android-udev-rules
pour que l’outil Android adb
puisse détecter les appareils sans
privilège root. Il détaille aussi comment créer le groupe adbusers
,
requis pour le bon fonctionnement des règles définies dans le paquet
android-udev-rules
. Pour créer ce groupe, on doit le définir dans
les supplementary-groups
de la déclaration user-account
ainsi
que dans le champ groups de l’enregistrement operating-system.
(use-modules (gnu packages android) ;pour android-udev-rules (gnu system shadow) ;pour user-group …) (operating-system ;; … (users (cons (user-account ;; … (supplementary-groups '("adbusers" ;for adb "wheel" "netdev" "audio" "video"))))) ;; … (services (cons (udev-rules-service 'android android-udev-rules #:groups '("adbusers")) %desktop-services)))
Conserve de l’ entropie dans %random-seed-file
pour amorcer
/dev/urandom lors du redémarrage. Il essaie également d’amorcer
/dev/urandom à partir de /dev/hwrng lors du démarrage, si
/dev/hwrng existe et est lisible.
C’est le nom du fichier où des octets aléatoires sont sauvegardés par urandom-seed-service pour démarrer /dev/urandom au redémarrage. Sa valeur par défaut est /var/lib/random-seed.
C’est le type du service qui lance GPM, le démon de souris à but général, qui fournit le support de la souris sur la console Linux. GPM permet aux utilisateurs d’utiliser la souris dans la console, entre autres pour sélectionner, copier et coller du texte.
La valeur pour les services de ce type doit être un gpm-configuration
(voir plus bas). Ce service ne fait pas partie de %base-services
.
Type de données représentant la configuration de GPM.
options
(par défaut : %default-gpm-options
)Les options de la ligne de commande à passer à gpm
. L’ensemble
des options par défaut dit à gpm
d’écouter les événements de la
souris dans /dev/input/mice. Voir Command Line dans gpm manual,
pour plus d’informations.
gpm
(par défaut : gpm
)Le paquet GPM à utiliser.
C’est le type de service pour guix publish
(voir Invoquer guix publish
). Sa valeur doit être un objet guix-publish-configuration
décrit plus bas.
Ce service suppose que /etc/guix contient déjà une paire de clefs
créée par guix archive --generate-key
(voir Invoquer guix archive
). Si ce n’est pas le cas, le service ne démarrera pas.
Le type de données représentant la configuration du service guix
publish
.
guix
(par défaut : guix
)Le paquet Guix à utiliser.
port
(par défaut : 80
)Le port TCP sur lequel écouter les connexions.
host
(par défaut : "localhost"
)L’hôte (et donc, l’interface réseau) sur lequel écouter. Utilisez
"0.0.0.0"
pour écouter sur toutes les interfaces réseaux.
advertise?
(par défaut : #f
)Lorsque la valeur est vraie, annonce le service sur le réseau local via le protocole DNS-SD, avec Avahi.
Cela permet aux machines Guix voisines qui ont activé la découverte (voir
guix-configuration
ci-dessus) de découvrir cette instance de
guix publish
et de télécharger des substituts directement à partir
d’elle.
compression
(par défaut : '(("gzip" 3) ("zstd" 3))
)Il s’agit d’une liste de méthodes de compression/numéros de niveau utilisés lors de la compression des substituts. Par exemple, pour compresser tous les substituts avec both lzip au niveau 7 et gzip au niveau 9, écrivez :
'(("lzip" 7) ("gzip" 9))
Le niveau 9 atteint le meilleur taux de compression au détriment d’une
utilisation accrue du CPU, tandis que le niveau 1 atteint une compression
rapide. Voir Invoquer guix publish
, pour plus d’information sur les
méthodes de compression disponibles et les compromis à faire entre elles.
Une liste vide désactive complètement la compression.
nar-path
(par défaut : "nar"
)Le chemin d’URL où les « nars » se trouvent. Voir --nar-path, pour des détails.
cache
(par défaut : #f
)Lorsque la valeur est #f
, désactive le cache et génère les archives à
la demande. Sinon, cela devrait être le nom d’un répertoire — p. ex.
"/var/cache/guix/publish"
— où guix publish
gère le cache
des archives et des métadonnées prêtes à être envoyées. Voir --cache, pour plus d’informations sur les compromis
impliqués.
workers
(par défaut : #f
)Lorsque la valeur est un entier, c’est le nombre de threads de travail
utilisés pour le cache ; lorsque la valeur est #f
, le nombre de
processeurs est utilisé. Voir --workers,
pour plus d’informations.
cache-bypass-threshold
(par défaut : 10 Mio)Lorsque cache
est vrai, c’est la taille maximale en octets d’un
élément du dépôt pour lequel guix publish
peut contourner le cache
s’il n’y est pas. Voir --cache-bypass-threshold, pour plus d’informations.
ttl
(par défaut : #f
)Lorsque la valeur est un entier, il dénote la durée de vie en secondes des archives publiées. Voir --ttl, pour plus d’informations.
negative-ttl
(par défaut : #f
)Lorsque la valeur est un entier, il dénote la durée de vie en secondes pour les réponses négatives. Voir --negative-ttl, pour plus d’informations.
Renvoie un service qui lance le programme rngd
de rng-tools
pour ajouter device à la réserve d’entropie du noyau. Le service
échouera si device n’existe pas.
'()
]Renvoie un service qui installe un fichier de configuration pour le
module
pam_limits
. La procédure prend éventuellement une liste de valeurs
pam-limits-entry
qui peuvent être utilisées pour spécifier les
limites ulimit
et les priorités nice
des sessions
utilisateurs.
La définition de limites suivante défini deux limites matérielles et
logicielles pour toutes les sessions connectées des utilisateurs du groupe
realtime
:
(pam-limits-service
(list
(pam-limits-entry "@realtime" 'both 'rtprio 99)
(pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))
La première entrée augment la priorité en temps réel maximale des processus non privilégiés ; la deuxième entrée abandonne les restrictions sur l’espace d’adressage maximal qui peut être verrouillé en mémoire. Ces paramètres sont souvent utilisés sur les systèmes audio temps-réel.
Un autre exemple utile est d’augmenter le nombre maximum de descripteurs de fichiers ouverts qui peuvent être utilisés :
(pam-limits-service
(list
(pam-limits-entry "*" 'both 'nofile 100000)))
Dans l’exemple au-dessus, l’astérisque signifie que la limite s’applique à
tous les utilisateurs. Il est important de s’assurer que la valeur choisie
n’excède pas la valeur maximale du système visible dans le fichier
/proc/sys/fs/file-max, sinon les utilisateurs ne pourront pas se
connecter. Pour plus d’information sur les limites du module
d’authentification grefable (PAM), regardez la page de manuel
‘pam_limits’ du paquet linux-pam
.
greetd
est un démon
de gestion des connexions minimaliste et flexible, qui ne fait aucune
hypothèse sur ce que vous voulez lancer.
Si vous pouvez le lancer depuis votre shell dans un TTY, greetd peut le lancer. S’il peut apprendre à parler un protocole IPC simple basé sur JSON, alors ce peut être un écran d’accueil.
greetd-service-type
fournit l’infrastructure nécessaire pour la
connexion des utilisateurs, ce qui comprend :
greetd
pam-mount
pour monter XDG_RUNTIME_DIR
Voici un exemple pour passer de mingetty-service-type
à
greetd-service-type
et comment vous pouvez le spécifier pour
plusieurs terminaux :
(append
(modify-services %base-services
;; greetd-service-type fournit le srevice PAM « greetd »
(delete login-service-type)
;; et peut être utilisé à la place de mingetty-service-type
(delete mingetty-service-type))
(list
(service greetd-service-type
(greetd-configuration
(terminals
(list
;; on peut rendre n'importe quel terminal actif par défaut
(greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t))
;; on peut créer des environnement sans initialiser XDG_RUNTIME_DIR
;; et même fournir nos propres variables d'environnement
(greetd-terminal-configuration
(terminal-vt "2")
(default-session-command
(greetd-agreety-session
(extra-env '(("MY_VAR" . "1")))
(xdg-env? #f))))
;; on peut utiliser un shell différent au lieu de bash par défaut
(greetd-terminal-configuration
(terminal-vt "3")
(default-session-command
(greetd-agreety-session (command (file-append zsh "/bin/zsh")))))
;; on peut utiliser n'importe quelle autre commande exécutable comme gestionnaire de connexion
(greetd-terminal-configuration
(terminal-vt "4")
(default-session-command (program-file "my-noop-greeter" #~(exit))))
(greetd-terminal-configuration (terminal-vt "5"))
(greetd-terminal-configuration (terminal-vt "6"))))))
;; mingetty-service-type peut être utilisé en parallèle
;; si vous voulez faire cela, n'utilisez pas (delete login-service-type)
;; comme indiqué plus haut
#| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))
La configuration pour greetd-service-type
.
motd
Un objet simili-fichier contenant le « message du jour ».
allow-empty-passwords?
(par défaut : #t
)Permet les mots de passes vides par défaut pour que les utilisateurs puissent se connecter au compte « root » la première fois après sa création.
terminal
(par défaut : '()
)Liste de greetd-terminal-configuration
par terminal pour lequel
greetd
doit démarrer.
greeter-supplementary-groups
(par défaut : '()
)Liste des groupes qui devraient être ajoutés à l’utilisateur
greeter
. Par exemple :
(greeter-supplementary-groups '("seat" "video"))
Remarquez que cet exemple échouera si le groupe seat
n’existe pas.
Enregistrement de la configuration par terminal du service greetd.
greetd
(par défaut : greetd
)Le paquet greetd à utiliser.
config-file-name
Nom du fichier de configuration utilisé pour le démon greetd. En général,
c’est une dérivation générée à partir de la valeur de terminal-vt
.
log-file-name
Nom du fichier de journalisation utilisé par le démon greetd. En général,
c’est un nom généré à partir de la valeur de terminal-vt
.
terminal-vt
(par défaut : ‘"7"’)Le terminal virtuel sur lequel tourner. L’utilisation d’un VT spécifique en évitant les conflits est recommandé.
terminal-switch
(par défaut : #f
)Rend ce terminal actif au démarrage de greetd
.
default-session-user
(par défaut : ‘"greeter"’)L’utilisateur à utiliser pour lancer l’écran d’accueil.
default-session-command
(par défaut : (greetd-agreety-session)
)Peut être soit une instance d’une configuration
greetd-agreety-session
ou un objet comme gexp->script
à
utiliser comme écran d’accueil.
Enregistrement de la configuration de l’écran d’accueil agreety de greetd.
agreety
(par défaut : greetd
)Le paquet dans lequel se trouve la commande /bin/agreety
.
command
(par défaut : (file-append bash "/bin/bash"
)La commande à démarrer par /bin/agreety
si la connexion réussi.
command-args
(par défaut : '("-l")
)Les arguments à passer à la commande.
extra-env
(par défaut : '()
)Variables d’environnement supplémentaires à définir à la connexion.
xdg-env?
(par défaut : #t
)Si la valeur est vraie, XDG_RUNTIME_DIR
et XDG_SESSION_TYPE
seront initialisés avant de démarrer la commande. Il faut remarquer que les
variables extra-env
sont initialisées juste après les variables
mentionnées, donc elles peuvent être écrasées.
Enregistrement de configuration générique de l’écran d’accueil wlgreet de greetd.
wlgreet
(par défaut : wlgreet
)Le paquet dans lequel se trouve la commande /bin/wlgreet
.
command
(par défaut : (file-append sway "/bin/sway"
)La commande à démarrer par /bin/wlgreet
si la connexion réussi.
command-args
(par défaut : '()
)Les arguments à passer à la commande.
output-mode
(par défaut : "all"
)Option à utiliser pour outputMode
dans le fichier de configuration
TOML.
sclae
(par défaut : 1
)Option à utiliser pour scale
dans le fichier de configuration TOML.
background
(par défaut : '(0 0 0 0.9)
)Liste RGBA à utiliser comme couleur de fond pour l’invite de connexion.
headline
(par défaut : '(1 1 1 1)
)Liste RGBA à utiliser comme couleur de titre dans la popup.
prompt
(par défaut : '(1 1 1 1)
)Liste RGBA à utiliser comme couleur d’invite dans la popup.
prompt-error
(par défaut : '(1 1 1 1)
)Liste RGBA à utiliser comme couleur d’erreur dans la popup.
border
(par défaut : '(1 1 1 1)
)Liste RGBA à utiliser comme couleur de bordure de la popup.
extra-env
(par défaut : '()
)Variables d’environnement supplémentaires à définir à la connexion.
Enregistrement de la configuration spécifique à sway, de l’écran d’accueil wlgreet de greetd.
wlgreet-session
(par défaut : (greetd-wlgreet-session)
)Un enregistrement greetd-wlgreet-session
pour la configuration
générale de wlgreet, en plus du greetd-wlgreet-sway-session
spécifique à Sway.
sway
(par défaut : sway
)Le paquet qui fournit la commande /bin/sway
.
sway-configuration
(par défaut : #f
)Objet simili-fichier qui fournit un fichier de configuration Sway supplémentaire à ajouter au début de la partie obligatoire de la configuration.
Voici un exemple de configuration de greetd qui utilise wlgreet et Sway :
(greetd-configuration
;; Nous devons donner ces permissions à l'utilisateur de l'écran d'accueil, sinon
;; Sway plantera au démarrage.
(greeter-supplementary-groups (list "video" "input" "seat"))
(terminals
(list (greetd-terminal-configuration
(terminal-vt "1")
(terminal-switch #t)
(default-session-command
(greetd-wlgreet-sway-session
(sway-configuration
(local-file "sway-greetd.conf"))))))))
Suivant: Exécution de tâches planifiées, Monter: Services [Table des matières][Index]