LINUX.ORG.RU

Как выполнить команду перед монтированием в systemd

 ,


0

2

Короче мне нужно директорию создать перед монтированием. Я пробежался по systemd.mount(5), но так и ни фига не нашёл. Есть варианты?

Пока придумал только через жопу, запилить ещё один сервис, который и создаст директорию, а у mount выставить зависимость на этот сервис.

★★★★★

Пока придумал только через жопу, запилить ещё один сервис, который и создаст директорию, а у mount выставить зависимость на этот сервис.

Именно это и есть systemd-way.

anonymous
()
Ответ на: комментарий от anonymous

Именно это и есть systemd-way.

О, збс )

UVV ★★★★★
() автор топика

If the mount point does not exist at the time of mounting, it is created.

А в общем случае — да, пилишь oneshot-юнит, выставляешь зависимости порядка. Конкретно для создания файлов и каталогов ещё можно tmpfiles заюзать.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

А в общем случае — да, пилишь oneshot-юнит,

Ога, уже написал.

If the mount point does not exist at the time of mounting, it is created.

Ну почти, только у меня не работает.

Unit]
Description=Mount unit for overlay fs
After=create-overlay-dirs.service

[Mount]
What=overlay
Where=/opt/mydir
Type=overlay
Options=lowerdir=/opt/mydir,upperdir=/tmp/overlay/rw/opt/mydir,workdir=/tmp/overlay/workdir/opt/mydir

[Install]
WantedBy=multi-user.target

create-overlay-dirs:

[Unit]
Description=Create overlay fs directories
After=tmp.mount

[Service]
Type=oneshot
ExecStart=/bin/mkdir -p /tmp/overlay/rw/opt/mydir /tmp/overlay/workdir/opt/mydir

[Install]
WantedBy=multi-user.target

UVV ★★★★★
() автор топика

нет шоб busybox-init юзать, как все нормальные эмбедщики :)

Harald ★★★★★
()
Ответ на: комментарий от pfg

Если обоих, то норм. Если только первый активировать, то

overlayfs: failed to resolve '/tmp/overlay/rw/opt/mydir': -2

UVV ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

mkdir -p Directory

что бы логику не ломать

Deleted
()
Ответ на: комментарий от Radjah

К чему ты это пишешь? Я же написал, что решил проблему, создав два юнита (может быть не сильно явно получилось). Изначально вопрос был, можно ли это сделать средствами одного юнита.

UVV ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Проблема не в этом, а в том, что overlayfs требует 3 директории, a mount unit создаст только одну из них.

UVV ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Ну ок, запилю тогда на неделе.

UVV ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.