
Я написал несколько записей в /etc/fstab
, например, монтирование на /tmp
.
Похоже, systemd монтирует /etc/fstab
записи слишком поздно, после того, как какой-то демон уже запущен, например Xorg.
Xorg создает .X11-unix
в /tmp
, затем systemd монтирует в /tmp
, поэтому файлы, которые уже в , /tmp
исчезают. Это приводит к тому, что некоторые программы не могут общаться с X.
Как сделать так, чтобы /etc/fstab
записи монтировались раньше? Или мне следует использовать что-то другое, а не /etc/fstab
?
решение1
Это говорит о том, что файл модуля, запускающий Xorg, имеет недостаточно зависимостей, и поэтому systemd
он запускается слишком рано.
По крайней мере в Debian монтирование локальных файловых систем автоматически имеет зависимость порядка Before=local-fs.target
, а local-fs.target
is, которая требуется sysinit.target
, отвечает за раннюю инициализацию системы, поэтому все локальные файловые системы должны быть смонтированы, когда sysinit.target
она будет завершена.
И если только модуль, который запускает Xorg, не имеет , DefaultDependencies=no
он неявно будет иметь Requires=sysinit.target
и After=sysinit.target
, поэтому он должен запускаться только после того, как sysinit.target
будет выполнено. Только модули, отвечающие за инициализацию системы низкого уровня, должны иметь DefaultDependencies=no
.
Однако, если ваша /tmp
файловая система удаленная, вам может потребоваться добавить After=remote-fs.target
зависимость к юниту, который запускает Xorg. Самый простой способ сделать это — использовать systemctl edit
для редактирования, что приведет systemctl
к автоматическому созданию файла drop-in с вашими изменениями (только) в /etc/systemd/system/<name of the Xorg-starting unit>.d/
.
Вам следует указать название и версию вашего дистрибутива Linux, чтобы, если у этой конкретной версии есть какие-то специфические особенности в systemd
конфигурации, кто-то, кто в них разбирается, мог дать вам более конкретный ответ.