Contexte
Si vous consultez la page de manuel, vous y trouverez man systemd.unit
un tableau qui explique les différences. Ceci provient d'un système CentOS 7.x.
UNIT LOAD PATH
Unit files are loaded from a set of paths determined during
compilation, described in the two tables below. Unit files found
in directories listed earlier override files with the same name
in directories lower in the list.
Table 1. Load path when running in system mode (--system).
┌────────────────────────┬─────────────────────────────┐
│Path │ Description │
├────────────────────────┼─────────────────────────────┤
│/etc/systemd/system │ Local configuration │
├────────────────────────┼─────────────────────────────┤
│/run/systemd/system │ Runtime units │
├────────────────────────┼─────────────────────────────┤
│/usr/lib/systemd/system │ Units of installed packages │
└────────────────────────┴─────────────────────────────┘
Quand ils disent "paquets installés", ils font référence à tout ce qui a été installé via un RPM. Il en va de même pour Debian / Ubuntu, où un fichier DEB serait le "paquet installé".
NOTE: le tableau ci-dessus d’un système Debian / Ubuntu est légèrement différent.
Table 1. Load path when running in system mode (--system).
┌────────────────────┬─────────────────────────────┐
│Path │ Description │
├────────────────────┼─────────────────────────────┤
│/etc/systemd/system │ Local configuration │
├────────────────────┼─────────────────────────────┤
│/run/systemd/system │ Runtime units │
├────────────────────┼─────────────────────────────┤
│/lib/systemd/system │ Units of installed packages │
└────────────────────┴─────────────────────────────┘
en cours d'analyse /usr/lib/systemd/system
Vous pouvez savoir quels packages possèdent les fichiers unité de /usr/lib/systemd/system
ce type sur un système CentOS / Fedora / RHEL:
$ rpm -qf /usr/lib/systemd/system/* |sort -u | head
abrt-2.1.11-50.el7.centos.x86_64
abrt-addon-ccpp-2.1.11-50.el7.centos.x86_64
abrt-addon-kerneloops-2.1.11-50.el7.centos.x86_64
abrt-addon-pstoreoops-2.1.11-50.el7.centos.x86_64
abrt-addon-vmcore-2.1.11-50.el7.centos.x86_64
abrt-addon-xorg-2.1.11-50.el7.centos.x86_64
accountsservice-0.6.45-7.el7.x86_64
acpid-2.0.19-8.el7.x86_64
alsa-utils-1.1.3-2.el7.x86_64
anaconda-core-21.48.22.134-1.el7.centos.x86_64
en cours d'analyse /etc/systemd/system
Si nous faisons la même chose /etc/systemd/system
, nous nous attendons à ne trouver aucun fichier appartenant à un RPM (ce qui est en fait le cas sur mon système CentOS 7.x):
$ rpm -qf /etc/systemd/system/* /etc/systemd/system/*/* | grep -v 'not owned'
$
Les valeurs aberrantes
N'oubliez pas que vous pouvez trouver des fichiers parasites occasionnels sous /usr/lib/systemd/system
, par exemple avec Virtualbox (vboxadd *):
$ rpm -qf /usr/lib/systemd/system/* |sort -u | grep 'not owned'
file /usr/lib/systemd/system/initrd.target.wants is not owned by any package
file /usr/lib/systemd/system/shutdown.target.wants is not owned by any package
file /usr/lib/systemd/system/vboxadd.service is not owned by any package
file /usr/lib/systemd/system/vboxadd-service.service is not owned by any package
file /usr/lib/systemd/system/vboxadd-x11.service is not owned by any package
Il y en a d'autres.
Conclusions
On s’attend à ce /usr/lib/systemd/system
qu’un répertoire ne contienne que les fichiers d’unité systemd qui y ont été insérés par le gestionnaire de paquets (YUM / DNF / RPM / APT / etc).
Les fichiers /etc/systemd/system
sont placés manuellement ici par l'opérateur du système pour les installations de logiciels ad-hoc qui ne sont pas sous la forme d'un package. Cela inclut les installations de logiciels de type tarball ou les scripts développés à la maison.
/lib/systemd/system
contre/usr/lib/systemd/system
. Je suis content d'avoir trouvé cette réponse./etc/systemd/system
génère une erreur si vous la masquezFailed to execute operation: Invalid argument
; systemd essaie de remplacer le fichier par un lien symbolique vers / dev / null. Ne pas dire que cette réponse est incorrecte, juste quelque chose à retenir./lib/systemd/system
et/usr/lib/systemd/system
, par conséquent, j'ai posé la question séparément unix.stackexchange.com/questions/550001/…