Как добавить зависимость к 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 получает уведомление.

  • Интерпретация вывода из systemd-resolve -status
  • Смущает записи ExecStartPre в файле systemd unit
  • Запуск файла служебной системы systemd после того, как сеть перейдет через шлюз по умолчанию OpenVPN
  • как настроить гостевые дополнения (драйверы) виртуальной коробки в системе systemd (exherbo)
  • как остановить воспроизведение Clementine при приостановке использования systemd
  • Проблемы с timesyncd или networkd
  • Установить службу systemd для запуска после монтирования fstab
  • Модуль iptables не загружен после обновления Ubuntu с 14.04 по 16.04
  • 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 требуются дополнительные параметры, такие как файловая система и параметры.

    Interesting Posts

    как команда «init» и «service» может пересекать жизнь обычного пользователя?

    dconf-WARNING **: не удалось зафиксировать изменения в dconf: соединение закрыто

    команда bash / script для сброса маршрута по умолчанию

    configure не удалось из-за того, что для получения более подробной информации см. `config.log '

    Присоедините линию рисунка и последовательные непустые строки, разделенные запятыми и заключенные в ()

    Найти файлы, содержащие набор слов

    Странная регистрация ошибок в BBB

    Использовать dd для резервного копирования образа диска в контейнере OpenVZ

    Kconfig – компиляция модуля ядра

    Невозможно установить glibc и glibc-common, потому что они нужны друг другу

    Есть ли способ просмотреть размер передачи rsync?

    Исходный код ядра Ubuntu

    Выбор настольного Linux-дистрибутива на основе дистрибутива рабочего сервера

    MacBook Pro Retina: огромное энергопотребление

    Восстановление содержимого удаленных текстовых файлов

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