Toutes les pages
Sur cette page

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 ~/.oar
Installateur ou npm install -g, Windows %APPDATA%\oar
Installation globale avec OAR_STATE_ROOT défini le dossier qu’elle indique
Checkout git dans le checkout : server/config.json, server/data/, server/uploads/, server/logs/

npm install -g et oar update remplacent le paquet mais ne touchent jamais au dossier d’état. OAR_STATE_ROOT 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_WEB_RELAY_CONFIG le fichier de config, COPILOT_WEB_RELAY_DATA_DIR le dossier de données (base de données, verrou et fichiers envoyés) et COPILOT_WEB_RELAY_LOG_DIR le dossier des journaux. Dans config.json, la clé dataDir déplace aussi le dossier de données ; la variable d’environnement l’emporte. Un dataDir relatif part du dossier de config.json.

Ajouté en 0.9.14 Les fichiers envoyés suivent aussi le dossier de données : <dataDir>/uploads. Les fichiers envoyés que des versions antérieures ont laissés dans server/uploads, 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 dataDir dans config.json 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\data, server\uploads et server\logs, à 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 ~/.config/copilot-remote ($XDG_CONFIG_HOME/copilot-remote quand cette variable est définie ; Windows : %LOCALAPPDATA%\copilot-remote). 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 -wal et -shm), le fichier de config, les stockages d’agents Cursor qui se trouvaient dans data/ (seulement s’il y avait une base de données), le dossier uploads et le dossier logs s’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.json 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 dans 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/MIGRATION.md et un fichier marqueur .migrated dans le dossier d’état.

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-from 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-from ultérieur ne faisait rien, sans un mot.

Ajouté en 0.9.14 Les fichiers envoyés migrés arrivent dans data/uploads/, où le relais les lit, et les stockages d’agents Cursor dans data/cursor-agents/, 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/uploads/ 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.json 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/copilot.db 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/copilot.db-wal, data/copilot.db-shm 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.db
data/uploads/<sha256> 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>.tmp 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/relay-server.lock Le verrou « un relais par dossier », voir Un relais par dossier de données Seulement quand aucun relais ne tourne
data/cursor-agents/ 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/deepseek-claude/ 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-env/, shell-snapshots/), les réglages propres à Claude Code, et oar-cli-starts.json, 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/diagnostics/ Ajouté en 0.9.19 Les instantanés du heap (*.heapsnapshot) 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/rescued-package-data/<time>/ 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-console.log)
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/relay-previous.json 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/server.log, logs/server-err.log 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/relay-console.log Une copie de la console du relais avec un horodatage par ligne, écrite par chaque relais Oui
logs/worker-<session>.log La sortie d’un worker de session, voir Journaux Oui
logs/worker-<session>.mcp.json 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/ext-debug.log, logs/relay-banner-state.json É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/node/ Le Node.js propre à OAR, quand la machine n’en avait pas d’assez récent Pas tant qu’oar tourne dessus
logs/oar-uninstall.log Ajouté en 0.9.15 Le résultat de npm après oar uninstall, et tout dossier caché .oar-* que npm a laissé. Avec --purge, il va plutôt dans le dossier temporaire du système Oui
oar-web-relay-launcher.cmd, oar-relay-task.xml (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
*.bak, *.bak-2, <task>.task.xml.bak (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 /create /xml 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/MIGRATION.md, .migrated 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 ~/.local/bin/oar (seulement dans les cas où il installe dans ~/.oar/npm), et le service Linux est ~/.config/systemd/user/oar.service. 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.db. 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 :

  1. Arrêtez le relais avec oar stop.
  2. Copiez ensemble copilot.db et, s’ils existent, copilot.db-wal et copilot.db-shm.
  3. Redémarrez le relais.

Pour restaurer, arrêtez le relais et remettez les fichiers copiés tels qu’ils étaient. Ne copiez pas copilot.db 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-console.log le relais, toujours À 5 Mo, le fichier devient relay-console.log.1, les plus anciens passent à .2 et .3, et le plus ancien est abandonné. Les lignes affichent votre token d’accès sous la forme [token]. OAR_NO_CONSOLE_LOG=1 désactive le fichier
server.log, server-err.log le shell d’oar start ou d’oar copilot, quand il démarre le relais en arrière-plan aucune
worker-<session>.log 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>.log.1 et remplace le précédent. Les fichiers des conversations supprimées restent
ext-debug.log 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/logs. Un checkout démarré avec oar start ou oar copilot les garde dans ~/.config/copilot-remote/logs (Windows : %LOCALAPPDATA%\copilot-remote\logs), sauf si COPILOT_WEB_RELAY_LOG_DIR indique un autre dossier.

Où se trouvent les secrets #

Secret Où il est stocké
Le token d’accès config.json, 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/relay-previous.json, en clair, lisible par vous seul ; supprimé automatiquement
Un token de tunnel Cloudflare (tunnel géré) config.json, clé cloudflaredTunnel.token, ou la variable d’environnement COPILOT_CLOUDFLARED_TOKEN
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_api_key). 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/diagnostics/ : 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 : ~/.claude, ou le dossier indiqué dans CLAUDE_CONFIG_DIR. 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 : ~/.grok/auth.json
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_CODE_OAUTH_TOKEN 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-console.log Rotation à 5 Mo, trois fichiers plus anciens conservés, voir Journaux
worker-<session>.log Passe à .1 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/deepseek-claude/, 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 (~/.claude, ou CLAUDE_CONFIG_DIR). 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/deepseek-claude/ ci-dessus
État des sessions GitHub Copilot ~/.copilot/session-state, ou le dossier indiqué dans COPILOT_SESSION_STATE_DIR
Images des chats OpenAI Image Dans le dossier d’état des sessions Copilot, dans <session>/generated-images/ sous la conversation. Voir OpenAI
Stockages d’agents Cursor Ajouté en 0.9.14 Un dossier par conversation, dans cursor-agents dans le dossier de données du relais (~/.oar/data/cursor-agents, %APPDATA%\oar\data\cursor-agents), ou dans le dossier indiqué par CURSOR_AGENT_STORE_DIR. 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 ~/.grok
Le wrapper de l’extension Copilot ~/.copilot/extensions/web-relay/, écrit par oar copilot ou oar copilot --install-extension. 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/data/cursor-agents, à 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-server.lock 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.