Coffre cryptomator Analyse défaillances
Analyse défaillances
- Ouverture : coffre-sync → coffre-borg → cryptomator-vault → coffre-rsync
- Fermeture : coffre-rsync → cryptomator-vault → coffre-borg → coffre-sync
1 2 3 4 5 6 7 8 9
[yann@pc1 ~]$ journalctl -b0 --user --no-pager --since '2026-11-10' |grep -i coffre nov. 10 16:02:54 pc1 systemd[832]: Starting Synchronisation Nextcloud du coffre chiffré... nov. 10 16:02:55 pc1 coffre-sync[1497]: Synchronisation Nextcloud… nov. 10 16:02:56 pc1 coffre-sync[1497]: Synchronisation terminée nov. 10 16:02:57 pc1 systemd[832]: Finished Synchronisation Nextcloud du coffre chiffré. nov. 10 16:02:57 pc1 systemd[832]: Starting Sauvegarde Borg du coffre chiffré (à la fermeture)... nov. 10 16:02:57 pc1 systemd[832]: Finished Sauvegarde Borg du coffre chiffré (à la fermeture). nov. 10 16:02:57 pc1 systemd[832]: Starting Copie rsync vers le coffre ouvert (à la fermeture)... nov. 10 16:02:57 pc1 systemd[832]: Finished Copie rsync vers le coffre ouvert (à la fermeture).
Vérifications
1
2
3
4
journalctl -b0 --user -u coffre-sync.service --no-pager
journalctl -b0 --user -u coffre-borg.service --no-pager
journalctl -b0 --user -u cryptomator-vault.service --no-pager
journalctl -b0 --user -u coffre-rsync.service --no-pager
e6230
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[yano@e6230 ~]$ journalctl -b0 --user -u coffre-sync.service --no-pager
journalctl -b0 --user -u coffre-borg.service --no-pager
journalctl -b0 --user -u cryptomator-vault.service --no-pager
journalctl -b0 --user -u coffre-rsync.service --no-pager
nov. 10 15:01:41 e6230 systemd[855]: Starting Synchronisation Nextcloud du coffre chiffré...
nov. 10 15:01:41 e6230 coffre-sync[1161]: Synchronisation Nextcloud…
nov. 10 15:01:53 e6230 coffre-sync[1161]: Synchronisation terminée
nov. 10 15:01:53 e6230 systemd[855]: Finished Synchronisation Nextcloud du coffre chiffré.
nov. 10 15:01:53 e6230 systemd[855]: Starting Sauvegarde Borg du coffre chiffré (à la fermeture)...
nov. 10 15:01:54 e6230 systemd[855]: Finished Sauvegarde Borg du coffre chiffré (à la fermeture).
nov. 10 15:01:54 e6230 systemd[855]: Started cryptomator-vault.service.
nov. 10 15:01:58 e6230 cryptomator-unlock.sh[1498]: Enter value for --password:stdin (Passphrase, read from STDIN):
nov. 10 15:01:59 e6230 cryptomator-unlock.sh[1498]: [main] INFO o.c.cli.Unlock - Unlocked and mounted vault successfully to file:///home/yano/.local/share/Cryptomator/mnt/yann-crypto/
nov. 10 15:01:54 e6230 systemd[855]: Starting Copie rsync vers le coffre ouvert (à la fermeture)...
nov. 10 15:01:54 e6230 systemd[855]: Finished Copie rsync vers le coffre ouvert (à la fermeture).
pc1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[yann@pc1 ~]$ journalctl -b0 --user -u coffre-sync.service --no-pager
journalctl -b0 --user -u coffre-borg.service --no-pager
journalctl -b0 --user -u cryptomator-vault.service --no-pager
journalctl -b0 --user -u coffre-rsync.service --no-pager
nov. 10 15:03:07 pc1 systemd[837]: [🡕] graphical-session.target: Found ordering cycle: cryptomator-vault.service/start after coffre-borg.service/start after coffre-sync.service/start after graphical-session.target/start - after cryptomator-vault.service
nov. 10 15:03:07 pc1 systemd[837]: [🡕] graphical-session.target: Job cryptomator-vault.service/start deleted to break ordering cycle starting with graphical-session.target/start
nov. 10 15:03:09 pc1 systemd[837]: Starting Synchronisation Nextcloud du coffre chiffré...
nov. 10 15:03:09 pc1 coffre-sync[1491]: Synchronisation Nextcloud…
nov. 10 15:03:14 pc1 coffre-sync[1491]: Synchronisation terminée
nov. 10 15:03:14 pc1 systemd[837]: Finished Synchronisation Nextcloud du coffre chiffré.
nov. 10 15:03:07 pc1 systemd[837]: [🡕] graphical-session.target: Found ordering cycle: cryptomator-vault.service/start after coffre-borg.service/start after coffre-sync.service/start after graphical-session.target/start - after cryptomator-vault.service
nov. 10 15:03:07 pc1 systemd[837]: [🡕] graphical-session.target: Job cryptomator-vault.service/start deleted to break ordering cycle starting with graphical-session.target/start
nov. 10 15:03:14 pc1 systemd[837]: Starting Sauvegarde Borg du coffre chiffré (à la fermeture)...
nov. 10 15:03:14 pc1 systemd[837]: Finished Sauvegarde Borg du coffre chiffré (à la fermeture).
nov. 10 15:03:07 pc1 systemd[837]: [🡕] graphical-session.target: Found ordering cycle: cryptomator-vault.service/start after coffre-borg.service/start after coffre-sync.service/start after graphical-session.target/start - after cryptomator-vault.service
nov. 10 15:03:07 pc1 systemd[837]: [🡕] graphical-session.target: Job cryptomator-vault.service/start deleted to break ordering cycle starting with graphical-session.target/start
-- No entries --
Edition
1
2
3
4
systemctl --user cat coffre-sync.service
systemctl --user cat coffre-borg.service
systemctl --user cat cryptomator-vault.service
systemctl --user cat coffre-rsync.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# /home/yann/.config/systemd/user/coffre-sync.service
[Unit]
Description=Synchronisation Nextcloud du coffre chiffré
PartOf=graphical-session.target
After=graphical-session.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=%h/.local/bin/coffre-sync debut
ExecStop=%h/.local/bin/coffre-sync fin
TimeoutStopSec=300
[Install]
WantedBy=graphical-session.target
# /home/yann/.config/systemd/user/coffre-borg.service
[Unit]
Description=Sauvegarde Borg du coffre chiffré (à la fermeture)
PartOf=graphical-session.target
After=graphical-session.target
Wants=coffre-sync.service
After=coffre-sync.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecStop=%h/.local/bin/coffre-borg
TimeoutStopSec=1800
[Install]
WantedBy=graphical-session.target
# /home/yann/.config/systemd/user/cryptomator-vault.service
[Unit]
Wants=coffre-borg.service coffre-rsync.service
After=coffre-borg.service
[Service]
ExecStart=%h/.local/bin/cryptomator-unlock.sh
ExecStopPost=-/usr/bin/fusermount3 -uz %h/.local/share/Cryptomator/mnt/yann-crypto
TimeoutStopSec=20
[Install]
WantedBy=graphical-session.target
# /home/yann/.config/systemd/user/coffre-rsync.service
[Unit]
Description=Copie rsync vers le coffre ouvert (à la fermeture)
PartOf=graphical-session.target
After=graphical-session.target
Requires=cryptomator-vault.service
After=cryptomator-vault.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=%h/.local/bin/coffre-rsync debut
ExecStop=%h/.local/bin/coffre-rsync fin
TimeoutStopSec=300
[Install]
WantedBy=graphical-session.target
Diagnostic
Le problème est uniquement sur pc1, et c’est un cycle d’ordonnancement, pas une défaillance des scripts.
La chaîne en jeu au démarrage :
Mais cryptomator-vault.service a WantedBy=graphical-session.target sans aucun After=. Le WantedBy crée une dépendance du target vers l’unité, et sans After, systemd la démarre avant le target. Résultat :
C’est un cycle. systemd casse le cycle en supprimant le job de démarrage de cryptomator-vault : le coffre n’est donc jamais déverrouillé sur pc1, et coffre-rsync (qui Requires=cryptomator-vault et n’a aucune entrée : -- No entries --) ne tourne pas non plus. Sur e6230 il n’y a pas de message de cycle, ce qui suggère que la version de l’unité y est différente (probablement avec le After manquant présent) : un diff des deux fichiers confirmerait.
Correction
Dans cryptomator-vault.service, ajouter les directives d’ordonnancement et d’arrêt manquantes :
1
2
3
4
[Unit]
Wants=coffre-rsync.service
After=graphical-session.target coffre-borg.service
PartOf=graphical-session.target
Puis :
1
systemctl --user daemon-reload # puis redéconnexion/reconnexion
Pourquoi c’est cohérent avec le reste
L’ordre de démarrage devient : coffre-sync → coffre-borg → cryptomator-vault → coffre-rsync, et l’arrêt se fait en ordre inverse grâce aux After + PartOf :
coffre-rsync fin(le coffre est encore monté) ✔- démontage Cryptomator (
ExecStopPostfusermount) ✔ coffre-borg(sauvegarde du coffre chiffré) ✔coffre-sync fin✔
C’est exactement la séquence voulue par vos descriptions (« à la fermeture »). Le Wants=coffre-borg.service coffre-rsync.service dans cryptomator-vault devient d’ailleurs redondant avec les Requires/After de coffre-rsync et le Wants de coffre-borg ; vous pouvez le simplifier en Wants=coffre-rsync.service ou le supprimer, mais il n’est pas nuisible.
Deux remarques annexes :
cryptomator-vault.servicen’a niType=niRemainAfterExit=: c’est correct pour un service long-running (Type=simple) qui doit rester actif pendant la session, mais soyez cohérent entre les deux machines.- Sur e6230, comparez avec
systemctl --user cat cryptomator-vault.service: si leAfter=graphical-session.targety figure, c’est la confirmation que pc1 a une version antérieure du fichier.
Le message en question est celui-ci :
Signification. Au moment de préparer la transaction de démarrage de la session, systemd a détecté une boucle d’ordonnancement : pour démarrer graphical-session.target, il fallait d’abord coffre-sync, puis coffre-borg, puis cryptomator-vault… mais démarrer cryptomator-vault exigeait (via le WantedBy sans After) que graphical-session.target soit déjà démarré. Chaque unité attendait la précédente : impossible de tout satisfaire.
Conséquence. Ce n’est pas une erreur bloquante pour systemd : il casse la boucle en supprimant le job de démarrage de cryptomator-vault (et donc indirectement de coffre-rsync, qui en dépend). C’est pour cela que sur vos sessions, le coffre n’était pas déverrouillé à l’ouverture et la copie rsync ne tournait pas. C’était donc bien un vrai problème, avec un effet visible, même si le journal ne l’affiche qu’en message d’information.
Après votre correction. Ce message ne doit plus apparaître : le After=graphical-session.target coffre-borg.service dans cryptomator-vault.service supprime la boucle. Si après une déconnexion/reconnexion journalctl -b0 --user --no-pager | grep -i cycle ne renvoie rien, le problème est réglé. S’il réapparaît encore, c’est que l’unité chargée en mémoire n’est pas la version corrigée (il faut alors refaire systemctl --user daemon-reload).
Ces deux lignes sont anciennes : elles sont horodatées 15:03:07, c’est-à-dire l’ouverture de session initiale de ce boot, avant votre correction. journalctl -b affiche tout le journal depuis le démarrage de la machine, y compris ce qui s’est passé avant le daemon-reload. Le fait qu’il n’y en ait pas d’autres n’est pas une preuve en soi : il faut une nouvelle transaction de session pour tester.
Le test propre :
- déconnexion puis reconnexion (ou redémarrage) ;
- puis :
- aucune sortie → problème réglé ;
- un cycle daté d’après votre correction → il y aurait un vrai souci, mais avec le fichier que vous venez d’afficher (
After=graphical-session.target coffre-borg.serviceprésent), la boucle décrite précédemment n’est plus possible, donc ce cas est très improbable.
Vous pouvez aussi vérifier l’ordre au prochain démarrage de session : journalctl --user -u cryptomator-vault.service --no-pager doit montrer le déverrouillage après le Finished de coffre-borg, et coffre-rsync doit avoir ses entrées debut/fin dès l’ouverture de session, sans attendre une relance manuelle.