
fstab
現在、このファイルを使用して Debian 9.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 が起動を完了するまでタスクを続行する前に、このサブフォルダーを作成する必要があります。
答え1
systemd を調べた後、偶然、greet の発見に遭遇しました。systemd がすでにこの目的のためのソリューションを提供しているため、これに対処するためにカスタム サービスを作成する必要はないことがわかりました。systemd-tmpfiles
これは、一時ディレクトリとファイルを管理するための構造化された構成可能な方法です。
https://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
/etc/tmpfiles.d/volatile-subfolder.conf
次の内容のファイルを作成するだけです:
d /var/volatile/subfolder 0755 root root - -
そしてリロードします。
答え2
/var/volatile
これに対処する 1 つの方法は、unit ディレクティブを使用して tempfsにこのディレクトリを作成するように新しい systemd サービスを作成する (または既存のサービスを変更する) ことですAfter=local-fs.target
。
[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 サービスが既にある場合は、After
ユニット ディレクティブと、必要なサブディレクトリを作成するコマンドをExecStartPre
コマンドに追加することもできます。