systemd: преобразовать путь в формат имени модуля systemd

10

Как преобразовать произвольные пути в systemdформат имени файла модуля?

Например, как бы преобразовать этот путь , /media/backupчтобы media-backupтаким образом я мог остановить монтирование через:

systemctl stop media-backup.automount

Решение должно избегать специальных символов.

Том Хейл
источник
Есть ли какой-нибудь список этих произвольных путей или вы хотите преобразовать каждый путь в системе? Что ты пытался сделать?
mrc02_kr

Ответы:

23

Вы должны использовать systemd-escapeкоторый разработан специально для этого:

systemd-escape -p --suffix=automount /media/backup

-pуказывает, что вы избегаете пути, и обрабатываете /, .и ..соответственно. Специальные символы также обрабатываются правильно. Таким образом ваша команда станет

systemctl stop "$(systemd-escape -p --suffix=automount /media/backup)"

Правила выхода описаны на systemd.unitстранице руководства .

Стивен Китт
источник
Это должно работать отлично. Учитывая, что umount -lэто опасно , я удивлен, увидев, что systemdlazy размонтирует точку монтирования с помощью этой команды.
Том Хейл,