J'ai un .service sur une partition séparée qui est liée à "systemctl enable" mais ne démarre pas automatiquement au démarrage. L'exécution de "systemctl status" prétend "échec du chargement" et cela fonctionne si j'exécute systemctl daemon-reload.

Je suppose que cela se produit parce que c'est sur une partition séparée et j'ai pu contourner ce problème en faisant explicitement "cp -t /etc/systemd/system".

Cela semble être quelque chose qui devrait « fonctionner », qu'est-ce que je rate ?

answer

Oui, c'est normalenable et c'est documenté dans la page de manuel systemctl(1), sous la commande :

The file system where the linked unit files are located must be accessible when systemd is started (e.g. anything underneath /home or /var is not allowed, unless those directories are located on the root file system).

La raison de la limitation est que systemd scanne toutes les unités et assemble une transaction au démarrage. Le montage d'autres systèmes de fichiers se fait via des unités, de sorte que les unités des autres systèmes de fichiers ne seront pas disponibles tant que la transaction n'est pas déjà en cours. systemd ne réanalysera pas les unités et ne recalculera pas la transaction une fois ces systèmes de fichiers montés.

Copier les unités dans le système de fichiers racine est une solution de contournement appropriée, comme vous l'avez déjà découvert.