web-dev-qa-db-ja.com

作成したサブフォルダーを使用して、起動時にtmpfsフォルダーをマウントします(揮発性)

現在、このfstabファイルでDebian9.5を使用しています。

# /etc/fstab: static file system information.
#
/dev/mmcblk1p1  /              ext4   noatime,errors=remount-ro  0  1    
tmpfs           /var/volatile  tmpfs  defaults,x-mount.mkdir     0  0

ここで、フォルダ/var/volatileが存在しない場合は、作成されます(x-mount.mkdir)。マウント手順が成功した直後に/var/volatile/subfolderのようなサブフォルダー(例)を作成する正しい方法は何でしょうか?

Systemdが起動を完了するまでタスクを続行する前に、このサブフォルダーを作成する必要があります。

3
marc

Systemdを探索した後、私は挨拶の発見に出くわしました。 systemdはすでにソリューションを提供しているため、これに対処するためにカスタムサービスを作成する必要はありません(systemd-tmpfiles) この目的のために。これは、一時ディレクトリとファイルを管理するための構造化された構成可能な方法です。

https://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.htmlhttps://www.freedesktop.org/software/systemd/man/tmpfiles。 d.html

ファイルを作成するだけです/etc/tmpfiles.d/volatile-subfolder.confこのコンテンツで:

d       /var/volatile/subfolder 0755 root root - -

そして再起動します。

0
marc

これに取り組む1つの方法は、/var/volatile unitディレクティブを使用して、After=local-fs.target tempfsでこのディレクトリの作成を処理する新しいsystemdサービスを作成する(または既存のサービスを変更する)ことです。

[Unit]
Description=Tempfs initialize
After=local-fs.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=mkdir -p /var/volatile/subfolder


[Install]
WantedBy=multiuser.target

これを/etc/systemd/system/tmpfsinitに追加してから、通常のsystemctl daemon-reload && systemctl enable tempfsinitを実行します。

または、カスタムsystemdサービスが既にある場合は、Afterunitディレクティブとコマンドを追加して必要なサブディレクトリをExecStartPreコマンドに追加することもできます。

2
111---