%20con%20una%20subcarpeta%20creada.png)
Actualmente uso Debian 9.5 con este fstab
archivo:
# /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/volatile
no existe, se creará ( x-mount.mkdir
). ¿Cuál sería la forma correcta de tener una subcarpeta (por ejemplo), como la que /var/volatile/subfolder
se 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.conf
con 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/volatile
tempfs usando la After=local-fs.target
directiva 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/tmpfsinit
y luego realice lo habitual systemctl daemon-reload && systemctl enable tempfsinit
.
Alternativamente, si ya tiene un servicio systemd personalizado, también puede agregar la After
directiva de unidad y el comando para crear el subdirectorio que necesita en un ExecStartPre
comando.