%20com%20uma%20subpasta%20criada.png)
Atualmente usando o Debian 9.5 com este fstab
arquivo:
# /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/volatile
não existir, ela será criada ( x-mount.mkdir
). Qual seria a maneira correta de ter uma subpasta (por exemplo) /var/volatile/subfolder
recé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.conf
com 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/volatile
tempfs usando a After=local-fs.target
diretiva 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/tmpfsinit
e 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 After
diretiva unit e o comando para criar o subdiretório necessário em um ExecStartPre
comando.