Monte uma pasta tmpfs na inicialização (volátil) com uma subpasta criada

Monte uma pasta tmpfs na inicialização (volátil) com uma subpasta criada

Atualmente usando o Debian 9.5 com este fstabarquivo:

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

Agora, se a pasta /var/volatilenão existir, ela será criada ( x-mount.mkdir). Qual seria a maneira correta de ter uma subpasta (por exemplo) /var/volatile/subfolderrecém-criada após o procedimento de montagem ser bem-sucedido?

Quero que esta subpasta seja criada antes que o systemd continue com suas tarefas até finalizar a inicialização.

Responder1

Depois de explorar o systemd, me deparei com uma descoberta de saudação. Acontece que não há necessidade de criar um serviço personalizado para lidar com isso, pois o systemd já fornece uma solução para esse fim:systemd-tmpfiles. É um método estruturado e configurável para gerenciar diretórios e arquivos temporários.

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

Basta criar um arquivo /etc/tmpfiles.d/volatile-subfolder.confcom este conteúdo:

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

E recarregue.

Responder2

Uma maneira de resolver isso seria criar um novo serviço systemd (ou modificar um existente) para lidar com a criação deste diretório em seu /var/volatiletempfs usando a After=local-fs.targetdiretiva unit.

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

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


[Install]
WantedBy=multiuser.target

Adicione isso /etc/systemd/system/tmpfsinite execute o procedimento usual systemctl daemon-reload && systemctl enable tempfsinit.

Alternativamente, se você já possui um serviço systemd personalizado, você também pode adicionar a Afterdiretiva unit e o comando para criar o subdiretório necessário em um ExecStartPrecomando.

informação relacionada