생성된 하위 폴더를 사용하여 시작 시(휘발성) tmpfs 폴더 마운트

생성된 하위 폴더를 사용하여 시작 시(휘발성) tmpfs 폴더 마운트

현재 이 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를 탐색한 후 나는 우연히 환영 발견을 발견했습니다. 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

이 문제를 해결하는 한 가지 방법은 새로운 시스템 서비스를 생성하거나 기존 서비스를 수정하여 unit 지시어를 /var/volatile사용하여 tempfs 에 이 디렉터리 생성을 처리하는 것입니다 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.

관련 정보