Как добавить зависимость к systemd.mount, которая активирована / bin / mount?

Я хочу, чтобы systemd на mount /mnt/test автоматически вызывал программу (в режиме реального времени cryptsetup чтобы разблокировать базовое устройство, для проверки здесь echo ), прежде чем файловая система будет смонтирована и после ее размонтирования.

С /etc/systemd/system/stickbak-encryption.service :

 [Unit] Description=stickbak encryption Before=mnt-test.mount StopWhenUnneeded=true [Service] Type=oneshot ExecStart=/bin/echo Unlock device. RemainAfterExit=true ExecStop=/bin/echo Lock device. [Install] RequiredBy=mnt-test.mount 

и /etc/fstab (частично):

 /dev/$DEVICE /mnt/test auto noauto 0 0 

это работает (после перезагрузки демона и включения службы) для systemctl start mnt-test.mount и, соответственно, systemctl stop mnt-test.mount (с правами root).

Однако в systemctl status mnt-test.mount stickbak-encryption mount /mnt/test systemctl status mnt-test.mount stickbak-encryption показывает, что последняя служба inactive (dead) , а первая active (mounted) .

Как я могу (или не могу?) Настроить зависимость, которая выполняется, когда вызывается /bin/mount ? Состояние модуля монтирования показывает, что mount /mnt/test , по-видимому, переводится в ExecMount=/bin/mount /dev/$DEVICE /mnt/test -t auto -o noauto , поэтому, видимо, системаd получает уведомление.

  • Как запустить службы, использующие сеанс D-Bus?
  • Изменить имя хоста для systemd на Fedora 25
  • Устранение неполадок сообщения об ошибке «противоречит существующим заданиям» systemd
  • Как приостановить работу с Gnome3 с помощью systemd
  • Безопасный способ резервного копирования журналов systemd
  • использование таймеров systemd вместо cron
  • Почему rsyslog не указан при запуске службы?
  • Автоматические (ish) cgroups с systemD
  • One Solution collect form web for “Как добавить зависимость к systemd.mount, которая активирована / bin / mount?”

    Я совсем недавно задал себе тот же вопрос, но я быстро понял, что это не так.

    Когда вы используете программу командной строки mount , systemd не участвует: mount reads /etc/fstab (или принимает параметры из командной строки) и монтирует устройство. Когда вы запускаете блок установки systemd, он разбирается с помощью systemd, который внутренне использует системные вызовы mount для выполнения монтирования.

    Таким образом, нет способа включить systemd, если вы используете mount .

    В стороне, есть интересная разница между использованием mount и systemd в том, что они принимают как действительные в /etc/fstab . Systemd анализирует файл и создает единицы монтирования, которые он использует. Когда он делает это, он принимает меньшее количество параметров, чем требуется для mount .

    Если вы используете systemd, вам нужно только указать устройство и точку монтирования, однако для mount требуются дополнительные параметры, такие как файловая система и параметры.

    Linux и Unix - лучшая ОС в мире.