%20tmpfs%20%ED%8F%B4%EB%8D%94%20%EB%A7%88%EC%9A%B4%ED%8A%B8.png)
현재 이 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
.