Status et Doctor
ironflock status affiche ce qu’une machine contient d’IronFlock et si cela fonctionne. ironflock doctor vérifie si une machine peut exécuter l’agent de l’appareil et si elle joint les hôtes avec lesquels l’agent communique. Utilisez-les avant de connecter une machine, et lorsqu’un appareil ne passe pas en ligne.
Les deux commandes ne modifient rien et ne posent aucune question. Elles s’exécutent sous Linux et macOS, sans root, et lisent davantage en tant que root. Avec --host, elles s’exécutent sur une autre machine, y compris sur plusieurs à la fois (Machines distantes via SSH). Elles s’y exécutent en tant que root lorsque le compte de connexion est root ou peut utiliser sudo sans mot de passe et sans terminal ; sinon, elles s’exécutent sous le compte de connexion, sans rien demander, et leur conseil indique la commande avec --host root@machine.
ironflock status
Affiche l’agent de l’appareil, l’appliance et le système d’exploitation de cette machine : ce qui est installé, sa version, si son service tourne, l’appareil et son projet, et la dernière mise à jour automatique de l’agent. L’appliance est le système IronFlock complet sur une machine sur site (IronFlock Appliance) ; pour une appliance, la commande affiche aussi l’adresse de son UI, sa licence, la santé de ses services et une mise à jour en attente (Commandes de l’appliance). Sur IronFlockOS, la commande affiche aussi les slots racine et ce qui demande votre attention.
ironflock status [flags]S’exécute sous : Linux ; sous macOS, la commande affiche le système et indique que rien n’est installé. Root : non requis ; quelques informations en ont besoin. Questions : aucune.
La commande n’a pas d’options propres. Elle accepte les options globales (Options globales).
Sans root, certaines informations ne peuvent pas être lues : l’appareil et son projet, car le .flock de l’agent n’est accessible qu’à root, et sur une appliance, dont le dossier /opt/ironflock appartient à root, également les versions, l’URL de l’appliance, sa licence et sa mise à jour, ainsi que la mise à jour de l’agent. La santé des services de l’appliance nécessite root ou le groupe docker. Elles indiquent unknown (needs root), le champ JSON needs_root les liste, et sudo ironflock status les lit.
# Ce qui se trouve sur cette machine, lu sous votre compte
ironflock status
# Tout, en JSON
sudo ironflock status --json
# L'état d'une autre machine via SSH
ironflock --host pi@device-17 statusSortie texte
$ ironflock status
Agent: installed in /opt/ironflock/device-agent
Version: 1.6.9
Service: running (ironflock-device-agent.service)
Connection: unknown (this agent does not report it)
Device: unknown (needs root)
Swarm: unknown (needs root)
Update: none pending
Appliance: not installed
System: Debian GNU/Linux 12 (bookworm)
Run 'sudo ironflock status' to read what needs root.Swarm est le projet de l’appareil. Connection vaut unknown pour un agent en cours d’exécution : les agents publiés jusqu’ici n’indiquent pas leur connexion sur la machine.
Sur IronFlockOS
La ligne du système affiche l’image et ses deux slots racine (Slots racine et partition de données) :
System: IronFlockOS 0.13.0 (amd64-efi, base)
Image: ironflockos-amd64-efi-base (build 20261105T120000Z-g1a2b3c4)
Slot A: inactive, good
Slot B: booted, good, 0.13.0 installed 2026-11-05T14:00:00Z
Next boot: slot BL’agent d’un appareil IronFlockOS est celui que l’image a mis en place lors de l’enrôlement de l’appareil, dans /opt/ironflock/device-agent sur /data, et il est affiché comme sur n’importe quel autre système. Un appareil qui ne s’est pas encore enrôlé n’a pas d’agent ; l’image en contient un, et la ligne indique comment l’appareil s’enrôle (première ligne ci-dessous). Lorsque /data n’a pas pu être monté lors de ce démarrage, le dossier de l’agent n’est pas visible non plus, que l’appareil soit enrôlé ou non, et la ligne le dit à la place (deuxième ligne) :
Agent: not enrolled yet: the device enrolls with a .flock on its IRONFLOCKOS partition at its next start, or now with 'sudo ironflock agent configure -c <file>'
Agent: not to be seen: /data, which holds the agent and its .flock, could not be mounted (below); a .flock on the IRONFLOCKOS partition enrolls the device at its next start for as long as /data is missingSous le système, chacune des lignes suivantes n’apparaît que lorsqu’IronFlockOS a quelque chose à signaler :
| Ligne | Affichée lorsque |
|---|---|
Last reset: | la dernière réinitialisation d’usine a échoué ou a abandonné. os reset explique la signification d’un enregistrement |
Reset hold: | une réinitialisation est en cours (wait : un .flock ou un proxy.conf sur la partition IRONFLOCKOS n’est pas pris en compte tant que les données de l’ancien propriétaire peuvent se trouver sur /data ; copy : la réinitialisation a commencé à effacer), ou elle a abandonné et n’a pas pu supprimer le .flock et le proxy.conf venus avec elle, qui restent inutilisés (gave-up) |
/data: | /data n’a pas pu être monté : l’appareil fonctionne sur les propres dossiers du slot racine, sans Docker ni les apps |
/apps: | /apps n’est pas le dossier de la partition de données : les apps fonctionnent, mais perdent leurs données à la prochaine mise à jour de l’OS |
Last reset: gave up after 3 attempts at 2026-11-11T09:00:00Z: the data partition is not the partition named data on the disk of the root slot; /data holds the old data; left of the old owner: the data partition, the booted root slot, the other root slot
Reset hold: wait: a reset is open; a .flock or proxy.conf on the IRONFLOCKOS partition is not taken while the old owner's data may be on /data
/data: NOT MOUNTED: the device runs on the root slot's own folders; Docker and the apps do not run, and what is written now is lost with the next update
/apps: not the data partition's folder: the apps run, but lose their data at the next OS updateUne tentative de réinitialisation qui a échoué se lit attempt 1 of 3 failed at <time>: <reason>; /data holds the old data; the next start tries again tant que le verrou vaut wait ou copy, et no request is open now sans verrou. Sans root, l’enregistrement de réinitialisation affiché est sa copie dans le slot en cours d’exécution, car la partition IRONFLOCKOS appartient à root.
Le dernier os install
Sur tout Linux doté de variables EFI, une ligne OS install: indique ce que le dernier ironflock os install a enregistré dans la variable EFI IronFlockInstall d’IronFlock, lorsqu’elle existe. Chaque utilisateur peut lire la variable. Là où elle ne peut pas être lue, ou si la machine n’a pas de variables EFI, il n’y a ni ligne ni avertissement ; une valeur qui ne s’analyse pas donne un avertissement.
System: Debian GNU/Linux 13 (trixie)
OS install: 'ironflock os install' stopped at 2026-11-11T10:00:00Z before it wrote the disk: the disk /dev/sda is not the plan's: its size changed from 64.0 GB to 32.0 GB; nothing was changed, and this system runs as before| Étape | La ligne indique |
|---|---|
stopped | qu’il s’est arrêté avant d’écrire sur le disque, la raison, et que rien n’a été modifié |
handed-over | sur l’ancien système : l’installateur ne s’est pas exécuté au redémarrage, et rien n’a été modifié. Sur IronFlockOS : il a écrit ce système mais n’a pas pu enregistrer comment l’installation s’est terminée |
writing | qu’il a commencé à écrire sur le disque et n’a pas enregistré qu’il avait terminé |
done | sur IronFlockOS : ce système a été installé par os install. Ailleurs : il a écrit IronFlockOS sur un disque de la machine, et le système en cours d’exécution en est un autre |
failed | qu’il a écrit sur le disque et que la relecture de ce qu’il a écrit a échoué, avec la raison |
L’enregistrement n’est jamais effacé. La ligne reste jusqu’à ce que le prochain os install le remplace et, sur un appareil converti, elle reste comme indication que le système a été installé de cette façon.
Résultat JSON
--json écrit la même chose sous la forme d’un objet JSON, présenté ici sur plusieurs lignes ; la commande l’écrit sur une seule ligne.
{
"agent": {
"installed": true,
"layout": "current",
"dir": "/opt/ironflock/device-agent",
"version": "1.6.9",
"service": {"unit": "ironflock-device-agent.service", "state": "running"},
"connection": "unknown",
"device": "demo-device",
"swarm": "demo_swarm",
"update": {"state": "none"}
},
"appliance": {"installed": false},
"os": {"name": "Debian GNU/Linux 12 (bookworm)", "id": "debian", "version": "12", "ironflockos": false},
"needs_root": []
}Une information qui ne peut pas être lue vaut unknown ; lorsque root n’en est pas la raison, un avertissement sur stderr dit pourquoi.
| Champ | Valeurs |
|---|---|
agent.installed | true lorsqu’un agent est installé. Les champs de layout à update sont alors présents, et seulement dans ce cas. Sur IronFlockOS, false signifie que l’appareil ne s’est pas encore enrôlé |
agent.unfinished_install | true : aucun agent, mais une installation antérieure s’est arrêtée avant d’arriver à l’agent ; agent install l’annule d’abord. Absent sinon |
agent.layout | current (/opt/ironflock/device-agent), legacy (/opt/reagent, d’un installateur antérieur), migrating (l’agent fait en ce moment passer l’ancienne disposition à la disposition actuelle) |
agent.dir | le dossier de l’agent |
agent.version | ce qu’indique le binaire de l’agent avec -version |
agent.service | unit et state : running, starting, stopping, stopped, failed, not_found (systemd ne connaît pas l’unité), unknown |
agent.connection | disconnected lorsque l’agent ne tourne pas. La connexion d’un agent en cours d’exécution vaut unknown ; connected vient des agents qui l’indiquent |
agent.device, agent.swarm | le nom de l’appareil et son projet, tirés du .flock. Rien d’autre du .flock n’est lu |
agent.update | la dernière mise à jour automatique. state : none (rien en cours, aucun échec), activating, probation (la nouvelle version tourne et doit se connecter pour faire ses preuves), rolled_back (elle a échoué, la version précédente tourne de nouveau, la nouvelle sera retentée plus tard), blocked (elle a échoué définitivement ; l’agent attend une version plus récente), unknown. Avec version, previous_version, reason et updated_at |
appliance.installed | true lorsque l’IronFlock Appliance est installée (son unité ironflock.service existe) ; dir, version, channel, url, license, service, health et update sont alors présents |
appliance.data_left | uniquement lorsque l’appliance n’est pas installée et que /opt/ironflock contient encore ses données, laissées par appliance remove sans --purge ou par une installation qui s’est arrêtée : ce dossier |
appliance.version, appliance.channel | les fichiers VERSION et CHANNEL de son dossier |
appliance.url | l’adresse de son UI : HOME_URL de son .env. Rien d’autre de .env, qui contient ses secrets, n’est lu |
appliance.license | present lorsque son license.env contient une clé de licence, missing sinon, invalid lorsque son LICENSE_KEY n’est pas une clé de licence (un UUID) : chaque commande de l’appliance ignore une telle clé, et le texte le dit. La clé n’est jamais affichée |
appliance.service | ironflock.service, avec les mêmes états que pour l’agent. running signifie que l’unité a démarré les conteneurs, pas que chacun d’eux est en bonne santé |
appliance.health | l’état de ses services, d’après docker ps : state healthy (chacun tourne et passe son contrôle de santé, ou n’en a pas, ou s’est exécuté une fois et s’est terminé avec 0), starting (un contrôle de santé est en attente), unhealthy, down (aucun conteneur), unknown ; services, le nombre de conteneurs ; problems, chaque service qui n’est pas en bonne santé avec son state (unhealthy, starting, restarting, exited avec exit_code, …) |
appliance.update | une mise à jour en attente, d’après le fichier d’état qu’écrivent son UI et son timer de nouvelle tentative : state none (aucune demandée, ou la dernière est terminée), running, failed (le timer de nouvelle tentative la retente), unknown ; avec version, since et message. cut_short (root uniquement) nomme la version dont une mise à jour interrompue a gardé les fichiers : la prochaine mise à jour les remet d’abord en place. Aucune version n’est recherchée |
appliance.ironflock | uniquement lorsque l’ironflock qu’exécutent les unités de l’appliance à chaque démarrage (path, /usr/local/bin/ironflock) est missing ou older (state ; version, ce qu’il indique) que celui qui a installé ou mis à jour l’appliance en dernier (installed). Root uniquement, et seulement pour une appliance qu’ironflock a installée. Le texte comporte alors une ligne ironflock:, qui indique ce qu’il faut installer |
os.name, os.id, os.version | PRETTY_NAME, ID et VERSION_ID de /etc/os-release ; sur un Mac macOS 15.5, macos, 15.5 |
os.ironflockos | true sur IronFlockOS. os.version est alors son IMAGE_VERSION, et les champs ci-dessous suivent |
os.image, os.build | IMAGE_ID et BUILD_ID de l’image |
os.booted_slot, os.primary_slot | le slot à partir duquel le système tourne, et celui que lance le prochain démarrage : A ou B |
os.slots | les slots racine : name (A), rauc_slot (rootfs.0), state (booted, active, inactive), boot_status (good, bad), ainsi que version et installed_at de la version qu’une mise à jour y a installée (absents pour un slot écrit avec l’image). Absent lorsque les slots ne peuvent pas être lus |
os.last_reset | l’enregistrement de la dernière réinitialisation d’usine, uniquement lorsqu’il vaut failed ou gave-up : result, time, version, attempt, attempts_max, reason, data (old, new, none : ce que /data contient maintenant) et, pour gave-up, left (parmi data, booted-slot, other-slot : ce qui, de l’ancien propriétaire, peut encore s’y trouver) |
os.reset_hold | wait, copy ou gave-up, uniquement tant qu’un verrou de réinitialisation est présent (voir le tableau ci-dessus) |
os.data_missing | true, uniquement lorsque /data n’a pas pu être monté |
os.install | ce qu’a enregistré le dernier os install, sur tout Linux doté de variables EFI, uniquement lorsque l’enregistrement existe et peut être lu : stage, time (RFC 3339, UTC) et reason (avec stopped et failed) |
os.apps_not_persistent | true, uniquement lorsque /apps n’est pas le dossier de la partition de données |
needs_root | les champs qui indiquent unknown parce que la commande ne s’est pas exécutée en tant que root, comme agent.device et agent.swarm. Vide lorsque rien n’a été omis |
Code de sortie
Le code de sortie est 0 chaque fois que la vue d’ensemble est écrite, y compris lorsqu’elle montre un agent arrêté, une mise à jour annulée ou un slot défectueux : status rend compte et ne juge pas, et un script lit les champs. Il est 1 lorsque la vue d’ensemble ne peut pas être écrite. Pour les autres codes de sortie, voir Codes de sortie.
ironflock doctor
Vérifie si cette machine peut exécuter l’agent de l’appareil, et si elle joint les hôtes avec lesquels l’agent communique : le système, systemd, Docker, l’espace disque libre, l’horloge, le DNS, le proxy, le serveur de téléchargement et les hôtes que nomme le .flock de l’appareil.
ironflock doctor [flags]S’exécute sous : Linux et macOS. Root : non requis ; une vérification qui ne peut pas examiner sans root est skipped et le dit. Questions : aucune.
| Option | Signification |
|---|---|
-c, --config <file> | le fichier .flock de l’appareil, dont les hôtes sont vérifiés (par défaut : celui de l’agent installé) |
agent install exécute ces vérifications, toutes sauf privileges et docker, avant de modifier quoi que ce soit, et s’arrête lorsque system, systemd, disk_space ou download_tree échoue.
# Vérifier cette machine, sous votre compte
ironflock doctor
# Tout vérifier en tant que root, en JSON
sudo ironflock doctor --json
# Vérifier les hôtes d'un .flock avant de l'installer
ironflock doctor -c device.flockRésultats
Chaque vérification a un identifiant, un résultat et un constat d’une ligne. Un résultat autre que ok s’accompagne d’un conseil qui indique quoi faire.
| Résultat | Signification |
|---|---|
ok | rien à faire |
warning | cela peut fonctionner, mais mal |
failed | l’agent ne peut pas être installé, ou ne fonctionne pas, en l’état de la machine |
skipped | la vérification n’a pas pu examiner ; le constat dit pourquoi |
Vérifications
Les vérifications, dans l’ordre où elles sont affichées. Une vérification garde son identifiant ; une nouvelle vérification en reçoit un nouveau.
| Identifiant | Examine | Lorsque ce n’est pas ok |
|---|---|---|
privileges | si la commande s’exécute en tant que root | warning sans root lorsqu’une vérification n’a pas pu examiner ; le constat nomme ces vérifications. Exécutez sudo ironflock doctor |
system | Linux, basé sur Debian ou Ubuntu (l’installation prend ses paquets dans apt) ou IronFlockOS, et l’architecture pour laquelle l’agent est téléchargé | failed sur un autre système, warning sur un autre Linux avec apt. agent install s’arrête sur failed |
systemd | systemd gère le système (/run/systemd/system existe) | failed lorsque systemd ne gère pas le système ; agent install s’arrête alors. warning tant que le système est degraded : une unité a échoué |
docker | Docker tourne (docker info) | ok sans Docker, car agent install l’apporte, mais failed lorsqu’un agent est installé. skipped sans root lorsque l’utilisateur n’est pas dans le groupe docker |
disk_space | l’espace libre pour /opt/ironflock et pour /var (Docker, apt, les journaux) | failed en dessous de 128 Mio dans /opt : une installation ou une mise à jour de l’agent y conserve son binaire en double. warning en dessous de 2 Gio dans l’un ou l’autre |
clock | l’horloge de cette machine par rapport à l’en-tête Date de la réponse du serveur de téléchargement, et à son Age lorsqu’un cache l’a conservée | ok à 10 s près, warning jusqu’à 5 minutes, failed au-delà : les requêtes signées et les jetons de courte durée sont refusés, et les données des apps portent une heure erronée. Une horloge très décalée casse le TLS lui-même : failed, avec l’heure qu’a la machine. Voir Synchronisation horaire (NTP) |
dns | les noms que cette machine résout elle-même : les hôtes qu’elle joint directement, et le proxy | un nom ne se résout pas. Un hôte joint via le proxy est résolu par le proxy |
proxy | le proxy par lequel passent les vérifications réseau, et l’origine du paramètre : l’enregistrement de l’installation (/etc/ironflock/proxy.env), sinon l’environnement | failed lorsque ce n’est pas l’URL d’un proxy. skipped sans root lorsque l’enregistrement se trouve dans le fichier, que seul root peut lire |
download_tree | l’agent sur le serveur de téléchargement que prend agent install : sa table des canaux, telle que la lit agent install (device-agent/manifest-v2.json, sinon manifest.json), et l’agent du canal de production pour cette architecture. Avec le miroir d’une appliance, ce que le miroir ne fournit pas est cherché dans le cloud IronFlock, comme le prend agent install : l’agent entier lorsque le miroir ne fournit pas de table des canaux, le fichier de l’agent lorsqu’il fournit la table sans le fichier | failed lorsqu’il n’y a aucun agent à télécharger, avec le miroir de l’appliance lorsque ni le miroir ni le cloud ne l’ont ; agent install s’arrête alors. Une erreur serveur (5xx) est un warning, de même qu’un agent que fournit le cloud là où le miroir ne le fournit pas |
device_endpoint | le device_endpoint_url du .flock répond | pas de réponse : c’est là que l’agent se connecte à IronFlock |
docker_registry | le docker_registry_url du .flock répond (https://<host>/v2/ ; avec un port, en HTTP simple, comme le registre d’une appliance sur le LAN) | pas de réponse : c’est de là que l’appareil récupère les images de ses apps |
update_server | le serveur de mise à jour de l’agent a sa table des canaux : l’update_url du .flock (le miroir d’une appliance), sinon le cloud IronFlock | pas de réponse ou pas de table des canaux : c’est là que l’agent trouve ses mises à jour |
Le serveur de téléchargement est celui que prend agent install : --download-base, sinon la variable d’environnement IRONFLOCK_DL_BASE, sinon le miroir de téléchargement de l’appliance que nomme le .flock (son update_url, lorsque ce n’est pas un hôte du cloud IronFlock), avec le cloud pour ce que le miroir ne fournit pas, sinon le cloud IronFlock (D’où vient l’agent). Les hôtes qu’un appareil doit joindre sont listés dans Exigences réseau.
Avec et sans -c et root
Les trois dernières vérifications ont besoin d’un .flock : celui de -c, sinon celui de l’agent installé.
| En tant que root | Sans root | |
|---|---|---|
Sans -c | les hôtes du .flock de l’agent installé | les trois dernières vérifications sont skipped : le .flock de l’agent installé n’est accessible qu’à root |
Avec -c | les hôtes du .flock donné | les hôtes du .flock donné |
Sans root, docker est aussi skipped en dehors du groupe docker, et proxy est skipped lorsque l’installation a enregistré le proxy. Une vérification réseau dont l’hôte ne répond pas est alors aussi skipped (pour dns, un nom qui ne se résout pas), car elle pourrait obtenir une réponse via le proxy enregistré. privileges nomme chaque vérification qui n’a pas pu examiner, et sudo ironflock doctor les exécute.
Comment les vérifications réseau décident
- Un hôte répond lorsqu’une réponse HTTP arrive, quel que soit son statut. Un 502, 503 ou 504 à une requête HTTP simple via le proxy n’est pas une réponse : le proxy le renvoie lorsqu’il ne peut pas joindre l’hôte.
- Un certificat que TLS refuse n’est pas une réponse. La seule exception est le certificat de la propre CA d’une appliance, lorsque le
.flocknomme unappliance_domain: l’agent lui fait confiance. - Les vérifications passent par le proxy de la vérification
proxy, selon les règles deHTTPS_PROXY,HTTP_PROXYetNO_PROXYque suivent les téléchargements, y compris pour chaque requête d’une redirection, et attendent une réponse pendant 20 s. - Un hôte qu’une entrée de
NO_PROXYtient à l’écart du proxy est joint directement. Lorsqu’il ne répond pas de cette façon, le constat nomme l’entrée, par exemple(directly: instance-registry.ironflock.com is in NO_PROXY), et le conseil dit de retirer l’entrée, avec la commandeagent configure --no-proxyqui le fait lorsque le paramètre est l’enregistrement de l’installation.
Sortie
$ sudo ironflock doctor
Download base: https://instance-registry.ironflock.com/dl
Device file: /opt/ironflock/device-agent/device-config.flock
CHECK RESULT FINDING
privileges ok runs as root
system ok Debian GNU/Linux 12 (bookworm), amd64
systemd ok systemd runs this system
docker ok Docker 27.3.1 runs
disk_space ok 50.0 GB free for /opt and /var
clock ok within 10 s of the download server's clock
dns ok resolves instance-registry.ironflock.com, cbw.ironflock.com, europe-docker.pkg.dev
proxy ok none: the connections go direct
download_tree ok https://instance-registry.ironflock.com/dl has the agent 1.6.9 for amd64
device_endpoint ok cbw.ironflock.com answers
docker_registry failed europe-docker.pkg.dev cannot be reached: no answer within 20 s
update_server ok https://instance-registry.ironflock.com/dl has the agent's updates
What to do:
docker_registry: the device pulls its apps' images from there: let this machine reach europe-docker.pkg.dev on port 443, directly or through the proxy
Failed: docker_registry.Avec le miroir de l’appliance du .flock, la première ligne l’indique :
Download base: http://10.0.0.5:15002/dl (the appliance's mirror of the .flock; the IronFlock cloud for what it does not give)Avec --json, ici raccourci et présenté sur plusieurs lignes ; la commande écrit une seule ligne.
{
"result": "failed",
"checks": [
{"id": "privileges", "result": "ok", "finding": "runs as root"},
{"id": "docker_registry", "result": "failed", "finding": "europe-docker.pkg.dev cannot be reached: no answer within 20 s", "hint": "the device pulls its apps' images from there: let this machine reach europe-docker.pkg.dev on port 443, directly or through the proxy"}
],
"download_base": "https://instance-registry.ironflock.com/dl",
"flock": "/opt/ironflock/device-agent/device-config.flock"
}| Champ | Valeurs |
|---|---|
result | failed lorsqu’une vérification a échoué, warning lorsque l’une d’elles a émis un avertissement, sinon ok. Une vérification skipped ne fait rien échouer |
checks | les vérifications, dans l’ordre ci-dessus : id, result, finding, et hint pour chaque résultat sauf ok |
download_base | le serveur de téléchargement vérifié. Avec le miroir de l’appliance, le miroir seul ; les constats nomment le cloud lorsqu’ils y cherchent |
flock | le .flock dont les hôtes ont été vérifiés ; null sans .flock |
Aucune sortie ne montre de secret : d’un .flock, les vérifications ne lisent que les hôtes, et le mot de passe d’un proxy s’affiche sous la forme xxxxx.
Code de sortie
Le code de sortie est 0 lorsqu’aucune vérification n’a échoué ; un avertissement ne fait pas échouer. Il est 1 lorsqu’une vérification a échoué : le résultat dit laquelle, aucune ligne d’erreur ne le suit et, avec --json, stdout contient le résultat, pas un objet d’erreur. Il est 1 avec une erreur lorsque le .flock de -c ne peut pas être lu. Pour les autres codes de sortie, voir Codes de sortie.