То, что вы использовали, называется подстановкой , которая не может фильтровать каталог или файл в оболочках POSIX.
С zsh
:
print -rl -- [^L]*(/)
Если вам нужны скрытые каталоги:
print -rl -- [^L]*(D/)
ПОЗИЦИОННО:
find . ! -name . -prune ! -name 'L*' -type d
Должен существовать "типичный" способ. Например, если точка монтирования не может быть загружена, система переводится в режим обслуживания и загрузка прерывается.
Да, есть. И если вы посмотрите на /usr/lib/systemd/system/local-fs.target
, то обнаружите, что это
OnFailure=emergency.target OnFailureJobMode=replace-irreversibly
Я вижу пару вариантов. Один из них - это жестокий вариант, который может быть подходящим для
системы без сохранения состояния, которую невозможно повредить. То есть добавить параметр - force
в poweroff
poweroff --force
В документации для него сказано: «Принудительная немедленная остановка, выключение питания, перезагрузка. Не связывайтесь с системой инициализации».
Другие службы продолжат запускаться параллельно, но отключение питания должно происходить быстрее.
Вы наблюдаете такое поведение, потому что systemd пытается загрузить вашу систему как можно быстрее , делая как можно больше параллельно. Это означает, что он перемещает к следующей задаче, как только выполняется зависимость, не обязательно, когда служба завершает работу.
Поскольку экран входа в систему и другие службы не зависят от работы вашей службы, они запускаются параллельно, даже если последовательность завершения работы уже началась .
Вы можете решить вашу проблему, принудительно приостановив процесс загрузки и дождавшись завершения вашей задачи, прежде чем продолжить. Во-первых, решите, какие службы должны запускаться до завершения работы вашей пользовательской службы, затем добавьте эти службы или цели в файл с новыми записями Before = .