Soluzione 1:
L'FHS non fornisce alcuna directory vuota "standard".
È comune per i sistemi Linux fornire una directory /var/empty
, ma questa directory non è definita in FHS e potrebbe non essere effettivamente vuota. Invece, alcuni demoni creeranno le proprie directory vuote qui. Ad esempio, openssh utilizza la directory vuota /var/empty/sshd
per la separazione dei privilegi.
Se la tua esigenza di una directory vuota è temporanea, puoi creare tu stesso una directory vuota, come sottodirectory di /run
o /tmp
. Se lo stai facendo al di fuori del programma, puoi usare mktemp -d
per questo, o usa il mkdtemp(3)
funzione C all'interno del programma. Anche se sempre hai bisogno che la directory vuota sia presente, considera di crearne una sotto /var/empty
come fa openssh.
Per questo caso d'uso, creare una directory in /tmp
è probabilmente la soluzione migliore, anche se in pratica non ha molta importanza dove la metti.
Soluzione 2:
Puoi usare mktemp -d
per creare una nuova directory temporanea vuota con permessi sicuri, per impostazione predefinita in /tmp/
. L'utility restituirà il percorso della nuova directory su STDOUT
, quindi è utile nella shell.
È comunque più portabile di un file unit systemd.
Soluzione 3:
Questa domanda Unix ha alcuni suggerimenti per la creazione di una directory "blackhole", incluso un filesystem FUSE nullfs.
Soluzione 4:
Per i servizi systemd fornisce l'opzione PrivateTmp
per creare /tmp
privato e /var/tmp
directory che non sono condivise da processi al di fuori dello spazio dei nomi per quel servizio e che dovrebbero essere vuote (inizialmente).
[Service]
ExecStart=...
PrivateTmp=yes