Solución 1:
El FHS no proporciona un directorio vacío "estándar".
Es común que los sistemas Linux proporcionen un directorio /var/empty , pero este directorio no está definido en FHS y es posible que en realidad no esté vacío. En cambio, ciertos demonios crearán sus propios directorios vacíos aquí. Por ejemplo, openssh usa el directorio vacío /var/empty/sshd por separación privilegiada.
Si su necesidad de un directorio vacío es transitoria, puede crear un directorio vacío usted mismo, como un subdirectorio de /run o /tmp . Si está haciendo esto fuera del programa, puede usar mktemp -d para esto, o use el mkdtemp(3) Función C dentro de su programa. Aunque si siempre necesita que el directorio vacío esté presente, considere crear uno en /var/empty como lo hace opensh.
Para este caso de uso, crear un directorio bajo /tmp es probablemente la mejor opción, aunque en la práctica no importa mucho dónde lo coloques.
Solución 2:
Puedes usar mktemp -d para crear un nuevo directorio temporal vacío con permisos seguros, por defecto en /tmp/ . La utilidad generará la ruta del nuevo directorio en STDOUT , por lo que es útil en el shell.
De todos modos, es más portátil que un archivo de unidad systemd.
Solución 3:
Esta pregunta de Unix tiene algunas sugerencias para crear un directorio de "agujero negro", incluido un sistema de archivos FUSE nullfs.
Solución 4:
Para servicios, systemd proporciona la opción PrivateTmp para crear un /tmp privado y /var/tmp directorios que no son compartidos por procesos fuera del espacio de nombres para ese servicio y que deben estar vacíos (inicialmente).
[Service]
ExecStart=...
PrivateTmp=yes