Systemd: дефисы в точке монтирования
По умолчанию udisks2 монтирует съемные диски в / run / media / $ USER / [UUID]. UUID содержит дефисы.
Я хотел использовать эту точку монтирования в сервисе systemd. Но systemd использует дефис вместо косой черты.
man systemd.mount говорит мне:
Устройства монтирования должны называться в соответствии с каталогами точек монтирования, которыми они управляют. Пример: точка монтирования / home / lennart должна быть настроена в файле модуля home-lennart.mount.
Может /run/media/daniel/76ya27o9-abce-81fv-8j2hj-casjkdjhhlasfd/ использоваться в сервисе systemd из-за дефисов? Если да, то как?
1 ответ
Ну, дефис будет экранирован при создании юнита:
[tom@localhost ~]$ udisksctl mount -b /dev/sdb1
Mounted /dev/sdb1 at /run/media/tom/A942-EE49.
[tom@localhost ~]$ systemctl --type mount
UNIT LOAD ACTIVE SUB DESCRIPTION
...
run-media-tom-A942\x2dEE49.mount loaded active mounted /run/media/tom/A942-EE49
...
В некоторых более старых версиях systemd вам может потребоваться экранировать обратную косую черту экранированного дефиса:
[Unit]
...
[Service]
...
[Install]
WantedBy=run-media-tom-A942\\x2dEE49.mount
Однако, когда я только что снова проверил это с systemd 230, очевидно, вам больше не нужно это делать. Так:
[Unit]
...
[Service]
...
[Install]
WantedBy=run-media-tom-A942\x2dEE49.mount
следует сделать.
FWIW, я думаю, что udisks2 предпочитает метку файловой системы, а не UUID, если она установлена.
PS вышеуказанный случай (WantedBy=
) это просто пример. Он используется для запуска службы (если она включена) при монтаже.