
現在Debian 9.5とこのfstab
ファイルを使用しています:
# /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を探索した後、私は驚くべき発見を偶然見つけました。 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
この問題を解決する1つの方法は、新しいシステムサービスを作成(または既存のサービスを変更)してtempfsにこのディレクトリを生成する単位ディレクティブを/var/volatile
使用することです。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
コマンドに必要なサブディレクトリを作成することもできます。