Ubuntu Desktop 22.04の/tmpのファイル削除の設定を確認する!

Ubuntu Desktop 22.04の/tmpの削除の設定を確認します。

systemdへの登録有無を確認する!

systemdに/tmp削除のサービスが登録されていることを確認します。

# systemctl list-unit-files | grep systemd-tmpfiles | sort
systemd-tmpfiles-clean.service                 static          -
systemd-tmpfiles-clean.timer                   static          -
systemd-tmpfiles-setup-dev.service             static          -
systemd-tmpfiles-setup.service                 static          -

サービスの起動状態を確認する!

/tmpの削除に関しては、「systemd-tmpfiles-clean.service」と「systemd-tmpfiles-clean.timer」が担っています。

# systemctl status systemd-tmpfiles-clean.service
○ systemd-tmpfiles-clean.service - Cleanup of Temporary Directories
     Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-clean.service; static)
     Active: inactive (dead)
TriggeredBy: ● systemd-tmpfiles-clean.timer
       Docs: man:tmpfiles.d(5)
             man:systemd-tmpfiles(8)
# systemctl status systemd-tmpfiles-clean.timer
● systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories
     Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-clean.timer; static)
     Active: active (waiting) since Sun 2023-05-07 23:07:57 JST; 8h ago
    Trigger: Mon 2023-05-08 07:32:48 JST; 12min left
   Triggers: ● systemd-tmpfiles-clean.service
       Docs: man:tmpfiles.d(5)
             man:systemd-tmpfiles(8)

 5月 07 23:07:57 vmsubu01.loc.lab4ict.com systemd[1]: Started Daily Cleanup of Temporary Directories.
# systemctl status systemd-tmpfiles-setup-dev.service
● systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev
     Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup-dev.service; static)
     Active: active (exited) since Sun 2023-05-07 23:07:55 JST; 8h ago
       Docs: man:tmpfiles.d(5)
             man:systemd-tmpfiles(8)
    Process: 258 ExecStart=systemd-tmpfiles --prefix=/dev --create --boot (code=exited, status=0/SUCCESS)
   Main PID: 258 (code=exited, status=0/SUCCESS)
        CPU: 6ms

 5月 07 23:07:55 vmsubu01.loc.lab4ict.com systemd[1]: Starting Create Static Device Nodes in /dev...
 5月 07 23:07:55 vmsubu01.loc.lab4ict.com systemd[1]: Finished Create Static Device Nodes in /dev.
# systemctl status systemd-tmpfiles-setup.service
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
     Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static)
     Active: active (exited) since Sun 2023-05-07 23:07:56 JST; 8h ago
       Docs: man:tmpfiles.d(5)
             man:systemd-tmpfiles(8)
    Process: 420 ExecStart=systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCE>
   Main PID: 420 (code=exited, status=0/SUCCESS)
        CPU: 12ms

 5月 07 23:07:56 vmsubu01.loc.lab4ict.com systemd[1]: Starting Create Volatile Files and Directories...
 5月 07 23:07:56 vmsubu01.loc.lab4ict.com systemd[1]: Finished Create Volatile Files and Directories.

serviceへの登録内容を確認する!

「systemd-tmpfiles --clean」を実行していることが分かります。

# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.service
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=local-fs.target time-set.target
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=systemd-tmpfiles --clean
SuccessExitStatus=DATAERR
IOSchedulingClass=idle

起動タイミングを確認する!

起動タイミングは、ブート後15分とその後1日おきになります。

# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
ConditionPathExists=!/etc/initrd-release

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d

削除の設定を確認する!

# cat /usr/lib/tmpfiles.d/tmp.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
D /tmp 1777 root root -
#q /var/tmp 1777 root root 30d

/tmpの状態を確認する!

/tmpを確認すると、1日以内に作成されたファイルしか存在していないことが分かります。

# date
2023年  5月  8日 月曜日 07:23:45 JST
root@vmsubu01:~# ls -l /tmp
total 48
drwx------ 3 root     root     4096  5月  7 23:08 snap-private-tmp
drwx------ 3 root     root     4096  5月  7 23:08 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-colord.service-sRYkLi
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-ModemManager.service-5i2vyN
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-power-profiles-daemon.service-hiN4a3
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-switcheroo-control.service-0BcbmK
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-systemd-logind.service-QAlYIc
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-systemd-oomd.service-JPoa4o
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-systemd-resolved.service-NGcqFf
drwx------ 3 root     root     4096  5月  7 23:07 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-systemd-timesyncd.service-0lDJ1B
drwx------ 3 root     root     4096  5月  7 23:08 systemd-private-06100f338c1c4d1b931c3ffb1bf1092c-upower.service-YziVfF
drwx------ 2 usradmin usradmin 4096  5月  7 23:08 tracker-extract-3-files.1000
drwxrwxrwt 2 root     root     4096  5月  7 23:07 VMwareDnD

tmp.confの設定方法を確認する!

manコマンドで、「tmp.conf」の設定方法を確認できます。様々なタイプの一時ファイルの作成と削除を、「tmp.conf」の設定で行うことができます。

# man tmpfiles.d

おわりに

/tmpの配下のファイルは、systemdで管理されたサービスにより自動で削除されていきます。

関連記事

関連書籍(Amazon)

N/A