Fichiers et dossiers
OAR garde tout ce qui lui appartient dans un seul dossier, le dossier d’état : le fichier de config, la base de données avec vos conversations, les journaux et les fichiers envoyés. Cette page indique où se trouve ce dossier, ce qu’il contient, quelles parties vous pouvez supprimer, lesquelles contiennent des secrets et ce que le relais supprime de lui-même. Certaines données ne sont pas du tout dans le dossier d’état : chaque fournisseur garde ses propres données de session et ses connexions dans ses propres dossiers.
Le dossier d’état #
| Installation | Dossier d’état |
|---|---|
Installateur ou npm install -g, macOS, Linux et WSL |
~/. |
Installateur ou npm install -g, Windows |
%APPDATA%\ |
Installation globale avec OAR_ défini |
le dossier qu’elle indique |
| Checkout git | dans le checkout : server/, server/, server/, server/ |
npm install -g et oar update remplacent le paquet mais ne touchent jamais
au dossier d’état. OAR_ doit être défini dans chaque shell où vous
lancez oar, sinon la commande cherche dans le dossier par défaut ; voir
Variables d’environnement. oar doctor
affiche les chemins utilisés : le dossier d’état, le fichier de config, la base
de données et sa taille. Les mêmes chemins sont listés pour chaque installation
dans Installation.
Trois variables d’environnement déplacent des parties isolées :
COPILOT_ le fichier de config, COPILOT_
le dossier de données (base de données, verrou et fichiers envoyés) et
COPILOT_ le dossier des journaux. Dans config., la clé
data déplace aussi le dossier de données ; la variable d’environnement
l’emporte. Un data relatif part du dossier de config..
Ajouté en 0.9.14 Les fichiers envoyés suivent aussi le dossier de données :
<data. Les fichiers envoyés que des versions antérieures ont
laissés dans server/, ou qu’une migration a copiés dans le dossier
uploads/ du dossier d’état, sont toujours lus là, sur place.
Ajouté en 0.9.14 Le relais d’une installation globale tourne sur le dossier de
données du dossier d’état, quelle que soit la façon dont il est démarré :
oar start, le service Linux, les deux modes de démarrage automatique de
Windows et un simple gh copilot avec l’extension d’OAR. Un data dans
config. qu’utilisait un ancien relais en démarrage automatique est copié
une fois, puis laissé tel quel.
Avant 0.9.14 : démarrage automatique Windows et gh copilot
Jusqu’à 0.9.13, les deux entrées de démarrage automatique de Windows, et le
relais démarré par un simple gh copilot, ne définissaient que le fichier de
config (gh copilot même pas). Un relais démarré par eux gardait sa base de
données, son fichier de verrou, ses fichiers envoyés et ses journaux dans
server\, server\ et server\, à l’intérieur du dossier du
paquet installé, que npm install -g et oar update remplacent. La mise à
jour vers 0.9.14 copie ces données avant que npm ne les supprime ; voir la
note de mise à niveau.
Sous macOS et Linux, le relais rend le dossier de données lisible par vous seul (mode 700), et le fichier de config et les fichiers de la base de données accessibles au seul propriétaire (mode 600).
Déplacer une ancienne installation #
Avant le renommage du projet, l’état se trouvait dans le dossier server/
d’un checkout git, et le fichier de config et les journaux du lanceur d’un
checkout dans ~/. ($XDG_
quand cette variable est définie ; Windows : %LOCALAPPDATA%\).
Une installation globale copie une fois le fichier de config et les journaux de
ce dossier dans le dossier d’état, lors de son premier oar setup ou
oar copilot. oar start ne migre pas. Pour importer l’état d’un checkout,
base de données comprise :
oar setup --migrate-from /home/dev/projects/old-oar
Le dossier est le checkout lui-même, pas son dossier server/. Ce qui se passe :
- La commande copie la base de données (avec ses fichiers
-walet-shm), le fichier de config, les stockages d’agents Cursor qui se trouvaient dansdata/(seulement s’il y avait une base de données), le dossieruploadset le dossierlogss’il fait 50 Mo ou moins. - Elle ne modifie jamais la source. Supprimez vous-même l’ancien dossier quand le résultat vous convient.
- Elle refuse tant qu’un relais tourne encore depuis la source, et le signale.
- Elle vérifie la copie avant de la valider : la base de données doit passer le contrôle d’intégrité de SQLite et contenir le même nombre de conversations et de messages. Sinon, elle supprime ce qu’elle a copié, Ajouté en 0.9.14 et non plus tout le dossier d’état, et laisse un message.
- Ajouté en 0.9.14 Elle n’écrase jamais rien. Un
config.déjà présent dans le dossier d’état est conservé. La base de données vide créée par le relais d’un installateur est déplacée dansjson backups/(arrêtez d’abord le relais :oar stop) ; une base de données qui contient des conversations la fait refuser, et elle indique quoi faire à la place. Pendant qu’elle copie une base de données, elle détient le verrou du relais, si bien qu’aucun relais ne démarre dessus entre-temps. - Elle écrit un reçu dans
backups/et un fichier marqueurMIGRATION. md .dans le dossier d’état.migrated
Après l’installateur Ajouté en 0.9.14
Le marqueur n’est écrit qu’après une vraie copie, et un dossier que vous
indiquez avec --migrate- est toujours migré, avec une ligne qui dit ce
qui a été copié ou pourquoi rien ne l’a été. L’option fonctionne donc aussi
après qu’un installateur a lancé oar setup. Le même dossier une seconde fois
indique seulement qu’il est déjà migré. Avant 0.9.14, le premier oar setup ou
oar copilot écrivait le marqueur même sans rien à importer, et un
--migrate- ultérieur ne faisait rien, sans un mot.
Ajouté en 0.9.14 Les fichiers envoyés migrés arrivent dans data/, où
le relais les lit, et les stockages d’agents Cursor dans data/,
que le relais lit par défaut. Les fichiers envoyés qu’une migration antérieure
a laissés dans le dossier uploads/ du dossier d’état sont fusionnés dans
data/ au démarrage suivant du relais ; rien n’est écrasé ni supprimé.
Les dossiers liés par lien symbolique dans le checkout sont copiés comme de
vrais dossiers.
Ce qu’il contient #
Les chemins sont relatifs au dossier d’état. « Supprimable sans risque » signifie que le relais fonctionne ensuite ; cela ne dit rien de ce que vous perdez.
| Chemin | Ce qu’il contient | Supprimable sans risque ? |
|---|---|---|
config. |
Le port, l’accès, le token d’accès, les minuteurs et, en option, les tunnels et les aperçus. Voir config.json | Arrêtez d’abord le relais. oar setup en écrit un nouveau avec un nouveau token, ce qui déconnecte tous les appareils. Les réglages de tunnel qu’il contient sont perdus |
data/ |
La base de données : vos conversations et vos réglages. Voir La base de données | Non : c’est votre historique. Sauvegardez-la d’abord |
data/, data/ |
Le journal d’écriture anticipée de la base de données et son index, présents pendant que le relais tourne | Jamais seuls. Supprimez-les uniquement avec copilot. |
data/ |
Un fichier par pièce jointe envoyée ou collée, nommé d’après son hash SHA-256, si bien qu’un même fichier n’est stocké qu’une fois. Un fichier <sha256>.<pid>.<number>. existe pendant l’écriture d’un envoi |
Pas à la main : la base de données renvoie à ces fichiers, et une conversation qui en utilisait un affiche une pièce jointe manquante. Le relais supprime ceux qui ne servent plus, voir Rétention |
data/ |
Le verrou « un relais par dossier », voir Un relais par dossier de données | Seulement quand aucun relais ne tourne |
data/ |
Ajouté en 0.9.14 Un dossier par conversation Cursor : l’état de son agent. Voir Hors du dossier d’état | Pas tant que vous utilisez Cursor : une conversation privée de son stockage reçoit un nouvel agent |
data/ |
Ajouté en 0.9.17 L’état Claude Code des chats DeepSeek : les fils de conversation et les dossiers de session sous projects/, ce que laisse chaque processus Claude Code (sessions/, session-, shell-), les réglages propres à Claude Code, et oar-, le registre que tient le relais de chaque démarrage de Claude Code, qui sert lors d’une suppression à trouver les bons instantanés de shell. Aucune connexion Claude. Lisible par vous seul (mode 700 sous macOS et Linux). Supprimer une conversation DeepSeek supprime sa part, voir Rétention |
Pas tant que vous utilisez des chats DeepSeek : leurs sessions Claude Code sont ici. Le worker recrée le dossier à son démarrage |
data/ |
Ajouté en 0.9.19 Les instantanés du heap (*.) que le relais écrit quand son heap approche de sa limite, voir Le relais a manqué de mémoire. Lisibles par vous seul (mode 700 sous macOS et Linux). Un instantané contient le token d’accès et les clés d’API |
Oui. Le relais ne supprime jamais les instantanés : supprimez chacun une fois lu |
data/ |
Ajouté en 0.9.14 Les données qu’une version antérieure gardait dans le paquet, copiées là par la mise à jour avant que npm ne le supprime. Le relais les reprend à son démarrage suivant | Une fois que le relais les a reprises ([data] Brought over the database … dans relay-) |
backups/<time>/ |
Ajouté en 0.9.14 Une base de données que le relais a remplacée par une plus récente qu’il a reprise ; aussi la base de données vide qu’une migration a mise de côté | Une fois que vous êtes sûr de ne plus en avoir besoin |
data/ |
Le port et le token avec lesquels le relais en marche a démarré, conservés entre un oar setup qui les a changés et le redémarrage qui les applique. Supprimé automatiquement |
Oui |
logs/, logs/ |
Ce qu’ont affiché oar start ou oar copilot quand ils ont démarré eux-mêmes le relais, sortie standard et erreurs. Écrits seulement quand oar démarre lui-même le relais ; le service et un relais lancé dans un terminal ne les écrivent pas |
Oui. Ils ne font jamais l’objet d’une rotation et grossissent |
logs/ |
Une copie de la console du relais avec un horodatage par ligne, écrite par chaque relais | Oui |
logs/ |
La sortie d’un worker de session, voir Journaux | Oui |
logs/ |
La configuration des outils d’une session. Elle ne contient aucun secret | Oui. Le relais en écrit une nouvelle au démarrage du worker de la session |
logs/, logs/ |
Écrits par l’extension du moteur d’extension Copilot | Oui |
npm/ |
Le paquet OAR, quand l’installateur l’a mis ici parce que le dossier global de npm demandait les droits root | Pas tant que vous utilisez cette installation. C’est le programme |
runtime/ |
Le Node.js propre à OAR, quand la machine n’en avait pas d’assez récent | Pas tant qu’oar tourne dessus |
logs/ |
Ajouté en 0.9.15 Le résultat de npm après oar uninstall, et tout dossier caché . que npm a laissé. Avec --purge, il va plutôt dans le dossier temporaire du système |
Oui |
oar-, oar- (Windows) |
Le lanceur qu’exécute la tâche de démarrage, et la définition de tâche qu’OAR enregistre. Voir Démarrage automatique | Pas tant que le relais démarre au démarrage de la machine. oar autostart off supprime les deux |
*., *., <task>. (Windows) |
Ajouté en 0.9.15 Les copies des entrées de démarrage automatique faites à la main qu’oar autostart --replace a remplacées, et des tâches qu’un changement en échec a remises en place : un lanceur, une entrée du dossier Démarrage, le XML exporté d’une tâche (schtasks / le reprend). Les copies des entrées générées par OAR disparaissent dès qu’un changement a réussi |
Oui, une fois que vous ne voulez plus récupérer l’entrée |
backups/, . |
Le reçu et le marqueur d’une migration | Le reçu : oui. Le marqueur : laissez-le, sinon la migration automatique depuis l’ancien dossier de config pourrait se relancer |
Hors du dossier d’état, le lanceur oar de l’installateur se trouve dans
~/. (seulement dans les cas où il installe dans ~/.),
et le service Linux est ~/.. Leur suppression
est décrite dans Supprimer OAR.
Ajouté en 0.9.15 oar uninstall supprime le service et le paquet et
laisse le dossier d’état tel quel ; oar uninstall --purge le supprime, une
fois que vous avez tapé delete.
Un checkout git garde les mêmes fichiers dans server/. Les images générées ne
sont pas dans le dossier d’état, voir Hors du dossier d’état.
La base de données #
La base de données est un unique fichier SQLite, copilot.. Le relais la
crée à son premier démarrage. Elle contient ce que vous appelleriez vos
données :
- les conversations et leurs messages, avec le fil de la conversation, l’index des pièces jointes et les messages épinglés
- la queue des messages, les messages en file et en attente, et les questions posées par un agent
- les réglages du relais que vous modifiez dans l’interface web (les interrupteurs valables pour toute l’app, les réglages des fournisseurs, le choix de rétention, les préférences de mise à jour, les listes de modèles)
- les clés d’API OpenAI, Cursor et Ajouté en 0.9.17 DeepSeek, si vous les avez saisies
- les relais associés et leurs tokens, et les abonnements qui surveillent des sessions sur ce relais et sur des relais associés
- les abonnements web push de vos appareils et les clés push du relais
- les liens des conversations partagées
- les enregistrements des subagents et des workflows, l’activité et les réflexions par conversation
- l’index des fichiers envoyés et des messages qui les utilisent
- les instantanés de consommation pour les jauges du forfait dans Check Usage (Vérifier la consommation), et Ajouté en 0.9.17 ce que compte la carte DeepSeek : les tokens et les recherches des turns DeepSeek par modèle et par jour, les derniers totaux signalés par chaque session DeepSeek, et les relevés de solde par rapport auxquels sa barre est mesurée
- les chats d’images : leurs opérations et les liens entre les images générées
- les cartes d’aperçu
Les migrations s’exécutent d’elles-mêmes à chaque démarrage du relais. Elles créent ce qui manque et ajoutent des colonnes, et les relancer ne change rien. Vous ne les lancez pas et ne pouvez pas les sauter.
Sauvegarder #
OAR n’a pas de commande de sauvegarde. La base de données tourne en mode
d’écriture anticipée de SQLite, si bien que les modifications récentes peuvent
se trouver dans le fichier -wal à côté d’elle. Pour la sauvegarder :
- Arrêtez le relais avec
oar stop. - Copiez ensemble
copilot.et, s’ils existent,db copilot.etdb- wal copilot..db- shm - Redémarrez le relais.
Pour restaurer, arrêtez le relais et remettez les fichiers copiés tels qu’ils
étaient. Ne copiez pas copilot. seul pendant que le relais tourne, et ne
mélangez pas un fichier de base de données avec le fichier -wal d’une autre
copie. Une sauvegarde contient vos clés d’API et vos tokens, voir
Où se trouvent les secrets ; gardez-la aussi privée que le dossier
d’état.
Journaux #
| Fichier | Écrit par | Rotation |
|---|---|---|
relay- |
le relais, toujours | À 5 Mo, le fichier devient relay-, les plus anciens passent à . et ., et le plus ancien est abandonné. Les lignes affichent votre token d’accès sous la forme [token]. OAR_ désactive le fichier |
server., server- |
le shell d’oar start ou d’oar copilot, quand il démarre le relais en arrière-plan |
aucune |
worker-<session>. |
chaque worker de session Node (Claude, Claude Cloud, Cursor, Grok, Ajouté en 0.9.17 DeepSeek et le moteur SDK Copilot), en ajout d’un redémarrage du worker à l’autre | À chaque lancement, un fichier de plus de 10 Mo devient worker-<session>. et remplace le précédent. Les fichiers des conversations supprimées restent |
ext- |
l’extension du moteur d’extension Copilot | aucune |
Le moteur d’extension Copilot n’a pas de journal de worker : c’est le terminal propre de la CLI Copilot. Un relais lancé comme service systemd écrit aussi dans le journal système, voir Démarrer le relais automatiquement.
Un checkout git démarré avec npm start garde ses journaux dans server/.
Un checkout démarré avec oar start ou oar copilot les garde dans
~/. (Windows : %LOCALAPPDATA%\),
sauf si COPILOT_ indique un autre dossier.
Où se trouvent les secrets #
| Secret | Où il est stocké |
|---|---|
| Le token d’accès | config., en clair. Traitez le fichier, ses copies et l’adresse de connexion (?token=) comme un mot de passe. Un navigateur le garde comme cookie de connexion pendant 30 jours. Le fichier de verrou du relais n’en garde qu’un hash |
L’ancien token d’accès, entre oar setup et le redémarrage |
data/, en clair, lisible par vous seul ; supprimé automatiquement |
| Un token de tunnel Cloudflare (tunnel géré) | config., clé cloudflared, ou la variable d’environnement COPILOT_ |
| Clé d’API OpenAI | La base de données. Le panneau ne l’affiche plus jamais et elle n’est pas envoyée aux navigateurs |
| Clé d’API Cursor | La base de données, de la même façon |
| Clé d’API DeepSeek | Ajouté en 0.9.17 La base de données, de la même façon (réglage deepseek_). Le relais ne l’envoie qu’à l’URL de base de DeepSeek, et ne la transmet qu’aux workers des chats DeepSeek. Voir DeepSeek |
| Le token d’un relais associé | La base de données. Jamais envoyé aux navigateurs ni aux agents. Une association qui utilise le propre token de ce relais n’en stocke aucun |
| Les tokens des liens de conversations partagées | La base de données |
| Les clés web push et les abonnements des appareils | La base de données |
| Instantanés du heap | Ajouté en 0.9.19 data/ : tout ce qui était dans la mémoire du relais, y compris le token d’accès et les clés d’API. Ne partagez jamais un instantané tel quel. Voir Le relais a manqué de mémoire |
| Connexion Claude | Le dossier propre de la CLI Claude sur la machine du relais : ~/., ou le dossier indiqué dans CLAUDE_. Le relais n’en stocke aucune. Claude Cloud lit la même connexion et la garde en mémoire. Les chats DeepSeek ne l’utilisent pas |
| Connexion Grok | Le dossier propre de la CLI Grok : ~/. |
| Connexion GitHub Copilot | La connexion propre de la CLI Copilot sur la machine du relais |
Pendant qu’un worker démarre sous tmux, le relais écrit la clé de son
fournisseur (la clé OpenAI, Cursor ou Ajouté en 0.9.17 DeepSeek, ou un
CLAUDE_ tiré de l’environnement du relais pour un worker
Claude Cloud ou, Ajouté en 0.9.17, Claude) dans un fichier temporaire du dossier
temporaire du système, lisible par vous seul. Le shell du worker le lit une
fois et le supprime. Chaque worker ne reçoit que la clé de son propre
fournisseur.
Rétention #
Le relais supprime ces éléments de lui-même. Rien d’autre n’est supprimé, sauf si vous supprimez une conversation.
| Quoi | Règle |
|---|---|
| Fichiers envoyés inutilisés | Un fichier auquel aucun message ni brouillon ne renvoie est supprimé une fois qu’il a plus de 24 heures. La vérification s’exécute au démarrage du relais et toutes les 6 heures. Il n’y a pas de réglage. Supprimer une conversation supprime aussi les fichiers qu’elle seule utilisait |
| Enregistrements des subagents | Les entrées et résultats d’outils des subagents terminés sont supprimés au bout du nombre de jours fixé par Keep sub-agent tool output (Conserver la sortie des outils des subagents), dans Settings → General (Réglages → Général) : 7, 14, 30 ou 90 jours, ou Always (Toujours). La valeur par défaut est 90. Les réflexions, les réponses, les notes et le résumé d’une ligne de chaque appel restent. La vérification s’exécute 30 secondes après le démarrage, une fois par jour et 5 secondes après une modification du réglage. Le fichier de la base de données ne rétrécit pas ; SQLite réutilise l’espace libéré |
| Événements du relais pour les sessions surveillées | Les événements déjà transmis à la conversation qui surveille sont supprimés au bout de 2 heures. Un abonnement terminé est supprimé au bout de 7 jours. Détails dans Sessions surveillées. Le nettoyage s’exécute toutes les 10 minutes |
| Événements qu’un relais associé n’a pas récupérés | Par abonnement, les 500 plus récents sont conservés, aucun de plus de 7 jours, et un abonnement que personne n’a consulté depuis 7 jours prend fin. Les questions et les erreurs sont abandonnées en dernier. Voir Relais distants |
relay- |
Rotation à 5 Mo, trois fichiers plus anciens conservés, voir Journaux |
worker-<session>. |
Passe à . au-delà de 10 Mo, au lancement. Rien ne supprime les journaux des conversations supprimées |
| Images générées | Jamais en fonction de leur âge. Supprimer la conversation supprime ses images |
| Le fichier de verrou | Supprimé quand le relais s’arrête. Après un plantage, le démarrage suivant le remplace, voir Un relais par dossier de données |
Supprimer une conversation supprime de la base de données ses messages, ses
entrées de queue, ses questions et les enregistrements de ses subagents, ainsi
que le fil de la conversation Claude et les images générées qui lui appartiennent.
Ajouté en 0.9.17 Pour une conversation DeepSeek, cela supprime aussi, dans
data/, le fil de la conversation, les dossiers de la session, ce
qu’a laissé son Claude Code arrêté (son inscription, l’environnement des hooks
et l’instantané de shell) et le dossier du projet dès qu’aucune autre session
ne l’utilise, et, dans la base de données, les derniers totaux signalés par ses
sessions. Ce qu’elle a ajouté aux totaux et aux jours de la carte DeepSeek
reste. Ce que chaque fournisseur garde lui-même est décrit dans la section
suivante.
Hors du dossier d’état #
| Quoi | Où |
|---|---|
| Fils de conversation et dossiers de session Claude | Sous projects dans le dossier de configuration de Claude (~/., ou CLAUDE_). Supprimer une conversation supprime son fil de conversation. Voir Claude. Ajouté en 0.9.17 Les chats DeepSeek gardent plutôt les leurs dans le dossier de données : data/ ci-dessus |
| État des sessions GitHub Copilot | ~/., ou le dossier indiqué dans COPILOT_ |
| Images des chats OpenAI Image | Dans le dossier d’état des sessions Copilot, dans <session>/ sous la conversation. Voir OpenAI |
| Stockages d’agents Cursor | Ajouté en 0.9.14 Un dossier par conversation, dans cursor- dans le dossier de données du relais (~/., %APPDATA%\), ou dans le dossier indiqué par CURSOR_. Dans le dossier d’état pour une installation globale ; listés ici parce que les versions antérieures les gardaient ailleurs. Voir Cursor |
| La CLI Grok et sa connexion | ~/. |
| Le wrapper de l’extension Copilot | ~/., écrit par oar copilot ou oar copilot --install-. Ajouté en 0.9.15 oar uninstall le supprime quand c’est celui qu’OAR a écrit pour cette installation |
| Claude Cloud | Rien sur le disque. Une session cloud tourne chez Anthropic ; ses résultats reviennent sous forme de branches poussées |
| Fichiers temporaires | Le fichier de clé de fournisseur à courte durée de vie mentionné plus haut, dans le dossier temporaire du système |
Avant 0.9.14, les stockages Cursor se trouvaient par défaut dans
server/, à l’intérieur du dossier du paquet, qu’une mise à
jour remplace : une conversation pouvait donc perdre son agent stocké et en
recevoir un nouveau (voir Cursor). Une
conversation dont le stockage est encore à cet ancien emplacement continue de
l’utiliser là, et une conversation qui a un stockage aux deux endroits utilise
celui qui a été modifié en dernier ; rien n’est déplacé ni supprimé.
Le travail de vos agents, les fichiers de vos dossiers de projet, se trouve entièrement hors du stockage d’OAR.
Un relais par dossier de données #
Le relais crée relay- dans le dossier de données au démarrage et
le supprime quand il s’arrête. Le fichier contient le numéro de processus du
relais, un hash de son token et son heure de démarrage.
Si un second relais démarre sur le même dossier de données pendant que le premier tourne, le second affiche une ligne et quitte, Ajouté en 0.9.14 avec le code 78 (code 1 auparavant), que le service Linux ne relance pas :
Relay already running (pid=4242, startedAt=2026-01-05T09:12:40.000Z; lock /home/dev/.oar/data/relay-server.lock). It is held by relay process 4242: oar stop, or end process 4242.
Relay appears to be owned by another live process au lieu de Relay already running signifie que le relais en marche a un autre token. Quand on ne peut
pas établir que le détenteur est un relais, l’indication est If no relay is running, end process 4242 or delete the lock. oar start affiche la même indication après The relay did not come up. Le premier relais n’est pas touché. Les messages restent en attente
quand le relais que vous attendiez n’est pas celui qui tourne ; oar doctor
affiche la config et la base de données utilisées.
Après un plantage ou une coupure de courant, le fichier de verrou reste en
place. Ajouté en 0.9.14 Un verrou datant d’avant le dernier démarrage de la
machine, ou dont le numéro de processus appartient désormais à un processus
démarré après lui, est périmé : le démarrage suivant le met de côté, consigne
Recovered stale singleton lock et reprend le verrou. Cela ne dépend plus de
l’horloge : un saut d’horloge ne fait donc pas passer un relais en marche pour
disparu, et deux démarrages qui récupèrent le même verrou ne tournent pas tous
les deux. Un verrou illisible (un verrou vide laissé par une coupure de
courant) est relu et compte comme détenu, sauf si son heure est décalée de plus
de 10 secondes. oar start ne supprime plus un verrou écrit par cette
version ; il supprime toujours celui d’une version antérieure quand rien ne
répond sur le port du relais.
Deux relais peuvent tourner côte à côte quand ils ont des dossiers de données
et des ports distincts. Voir La commande oar
pour savoir comment oar trouve le relais, et
Redémarrages et reprise pour ce qu’un
redémarrage conserve.