Dans un systemd
Ubuntu (15.10 et plus récent), cela est fait par systemd, en utilisant le service et le timer systemd-tmpfiles-clean
:
$ systemctl cat systemd-tmpfiles-clean.service
# /lib/systemd/system/systemd-tmpfiles-clean.service
# Ce fichier fait partie de systemd.
#
# systemd est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
# selon les termes de la Licence publique générale limitée GNU telle que publiée par
# la Free Software Foundation ; soit la version 2.1 de la Licence, ou
# (à votre choix) toute version ultérieure.
[Unit]
Description=Nettoyage des répertoires temporaires
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=local-fs.target time-sync.target
Before=shutdown.target
[Service]
Type=oneshot
ExecStart=/bin/systemd-tmpfiles --clean
IOSchedulingClass=idle
Et
$ systemctl cat systemd-tmpfiles-clean.timer
# /lib/systemd/system/systemd-tmpfiles-clean.timer
# Ce fichier fait partie de systemd.
#
# systemd est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
# selon les termes de la Licence publique générale limitée GNU telle que publiée par
# la Free Software Foundation ; soit la version 2.1 de la Licence, ou
# (à votre choix) toute version ultérieure.
[Unit]
Description=Nettoyage quotidien des répertoires temporaires
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
Vous pouvez modifier le comportement du timer en utilisant systemctl edit systemd-tmpfiles-clean.timer
, et en utilisant diverses options de configuration Timer
de systemd (voir man 5 systemd.timer
).
Ainsi, systemd-tmpfiles-clean
s'exécute à l'arrêt du système, et une fois par jour sinon. Les fichiers qu'il nettoie peuvent être étendus en utilisant /etc/tmpfiles.d
(mentionné dans une autre réponse).
Il est intéressant de noter qu'en tant que paramètre par défaut, /etc/tmpfiles.d
est vide. Le fichier où la politique de /tmp
est définie est ici :
/usr/lib/tmpfiles.d/tmp.conf
Contenu réel :
# Ce fichier fait partie de systemd.
#
# systemd est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
# selon les termes de la Licence publique générale limitée GNU telle que publiée par
# la Free Software Foundation ; soit la version 2.1 de la Licence, ou
# (à votre choix) toute version ultérieure.
# Voir tmpfiles.d(5) pour plus de détails
# Effacer les répertoires tmp séparément, pour les rendre plus faciles à remplacer
D /tmp 1777 root root -
#q /var/tmp 1777 root root 30d
Ainsi, comme déjà mentionné, pour le remplacer, vous pouvez consulter une autre réponse sur tmpfiles.d.
18 votes
Mes fichiers temporaires ne sont jamais écrits sur le disque. Ils sont écrits sur un disque RAM. J'ai mis
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
dans /etc/fstab.0 votes
Connexe: serverfault.com/questions/377348/when-does-tmp-get-cleared/…
0 votes
Voir Serverfault: Quand est-ce que /tmp est nettoyé ?