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

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 требуются дополнительные параметры, такие как файловая система и параметры.

  • как systemd определяет, что служба остановлена?
  • Как заставить систему войти в аварийный режим?
  • Синхронизировать блок systemd на основе таймеров
  • Настройка шрифта консоли в vconsole.conf не работает (systemd)
  • Systemd.service: используйте функцию bash для настройки сети
  • Linux: Почему init и systemd используют так много операций ввода-вывода?
  • cgroups / systemd: Как создать группу для дерева процессов
  • Не удается удалить или отключить nginx
  • Как предотвратить Pulseaudio при сбое при запуске виртуальной машины из VirtualBox?
  • Модуль Systemd для повторного подключения беспроводной сети при сбое
  • systemd, когда два устройства используют одну и ту же точку монтирования
  • Сохранение вывода процесса в файл в файле systemd
  • Linux и Unix - лучшая ОС в мире.