Montar una carpeta tmpfs al inicio (volátil) con una subcarpeta creada

Montar una carpeta tmpfs al inicio (volátil) con una subcarpeta creada

Actualmente uso Debian 9.5 con este fstabarchivo:

# /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

Ahora, si la carpeta /var/volatileno existe, se creará ( x-mount.mkdir). ¿Cuál sería la forma correcta de tener una subcarpeta (por ejemplo), como la que /var/volatile/subfolderse acaba de crear después de que el procedimiento de montaje se haya realizado correctamente?

Quiero que esta subcarpeta se cree antes de que systemd continúe con sus tareas hasta finalizar el inicio.

Respuesta1

Después de explorar systemd, me topé con un gran descubrimiento. Resulta que no es necesario crear un servicio personalizado para solucionar esto ya que systemd ya proporciona una solución para este propósito:systemd-tmpfiles. Es un método estructurado y configurable para gestionar directorios y archivos temporales.

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

Simplemente crea un archivo /etc/tmpfiles.d/volatile-subfolder.confcon este contenido:

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

Y recargar.

Respuesta2

Una forma de abordar esto sería crear un nuevo servicio systemd (o modificar uno existente) para manejar la creación de este directorio en sus /var/volatiletempfs usando la After=local-fs.targetdirectiva unit.

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

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


[Install]
WantedBy=multiuser.target

Agregue esto /etc/systemd/system/tmpfsinity luego realice lo habitual systemctl daemon-reload && systemctl enable tempfsinit.

Alternativamente, si ya tiene un servicio systemd personalizado, también puede agregar la Afterdirectiva de unidad y el comando para crear el subdirectorio que necesita en un ExecStartPrecomando.

información relacionada