From: "Денис Смирнов" <mithraen@freesource.info> To: devel@lists.altlinux.org Subject: [devel] systemd & проблемы с mount блокируют загрузку Date: Tue, 5 Aug 2014 23:16:34 +0400 Message-ID: <20140805191634.GA22105@mw.mithraen.ru> (raw) [-- Attachment #1: Type: text/plain, Size: 2171 bytes --] У нас сейчас с systemd есть проблема. Одна из тех, что вызывает массовое неприятие systemd у пользователей. Суть проблемы: при невозможности смонтировать любой из разделов упомянутый в /etc/fstab система останавливает загрузку, и далее уже требуются специальные знания для восстановления работоспособности системы. Причем проблема одинаково воспроизводится при невозможности смонтировать, к примеру /usr и какой-нибудь /home/user/films или /media/films. Предлагаю следующее решение и прошу комментариев. Зависимости на смонтированные FS ================================ Сейчас монтирование *всех* разделов упомянутых в /etc/fstab происходит до собственно запуска большинства сервисов -- ибо они имеют зависимость на basic.target, который зависит от local-fs.target, которая зависит от монтирования всех разделов из /etc/fstab. В systemd есть встроенный метод делать зависимости конкретных сервисов на смонтированные FS: RequiresMountsFor. Для сервисов, которые имеют эту директиву в unit-файле зависимость на local-fs.target не требуется. Однако прописывать ее корректно всем мантейнерам было, есть и будет лень и некогда. Решения: 1. Нам никто не мешает сгенерировать её автоматически, еще на этапе сборки rpm-пакета: мы можем автоматически добавить в нее все каталоги, присутствующие в собираемом пакете. Насколько я понял, для этого нужно просто создать соответствующий /usr/lib/rpm/fixup-(something)? 2. Для SYSV скриптов предлагаю оставить то поведение, которое было раньше (система ругается, но пытается загрузиться). Соответственно в генераторе systemd сервисов для sysv-скриптов: - зависимости с local-fs.target на соответствующие mounts вместо 'requires' делаем 'wants'. - добавляем в After local-fs.target После чего убираем local-fs.target из basic.target вообще. Итог: - для SYSV скриптов ничего не изменится по сравнению с "до systemd" временем - systemd сервисы будут запускаться только после монтирования необходимых им для работы каталогов Соответственно недоступность очередного "/media/films" не будет останавливать загрузку. -- С уважением, Денис http://mithraen.ru/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --]
next reply other threads:[~2014-08-05 19:16 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-08-05 19:16 Денис Смирнов [this message] 2014-08-06 16:47 ` Alexey Shabalin 2014-08-06 21:46 ` Денис Смирнов
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20140805191634.GA22105@mw.mithraen.ru \ --to=mithraen@freesource.info \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git