У меня есть .service на отдельном разделе, который связан с "systemctl enable", но не запускается автоматически при загрузке. Запуск «systemctl status» утверждает, что «не удалось загрузить», и он работает, если я запускаю systemctl daemon-reload
.
Я предполагаю, что это происходит потому, что он находится в отдельном разделе, и я смог обойти это, явно выполнив "cp -t / etc / systemd / system".
Это похоже на то, что должно «просто работать», что мне не хватает?
Да, это ожидается, и это задокументировано в systemctl (1) справочная страница под enable
команда:
Файловая система, в которой расположены связанные файлы модулей, должна быть доступна при запуске systemd (например, все, что находится под
/home
или/var
не допускается, если только эти каталоги не расположены в корневой файловой системе).
Причина ограничения в том, что systemd сканирует все модули и собирает транзакцию при запуске. Монтирование других файловых систем выполняется с помощью модулей, поэтому модули в других файловых системах будут недоступны до тех пор, пока транзакция не будет выполнена. systemd не будет повторно сканировать модули и пересчитывать транзакцию после монтирования этих файловых систем.
Как вы уже выяснили, копирование модулей в корневую файловую систему является подходящим решением.