change "/tmp" deletion from the time of boot to the time of shutting down to prevent data loss

Ralf Mardorf ralf.mardorf at alice-dsl.net
Mon Jul 26 21:33:57 UTC 2021


On Mon, 26 Jul 2021 23:19:09 +0300, Nicholas Guriev wrote:
>However in general, /tmp is not intended to have important data which
>is worth regretting.

Let alone that tmp could be mounted as tmpfs, see
https://en.wikipedia.org/wiki/Tmpfs . However, even if it's not a
tmpfs, a systemd unit might clean /tmp, for Ubuntu see
https://askubuntu.com/questions/20783/how-is-the-tmp-directory-cleaned-up
.

Disabling or masking related systemd units should work.

An example from my Arch Linux install. It's not mounted by fstab, but
by a systemd unit.

[rocketmouse at archlinux ~]$ df -h | grep tmpfs
tmpfs           3.9G   31M  3.9G   1% /dev/shm
tmpfs           3.9G  1.9M  3.9G   1% /tmp
tmpfs           786M  104K  785M   1% /run/user/1000
[rocketmouse at archlinux ~]$ cat /etc/fstab | grep tmp
#tmpfs          /tmp            tmpfs nodev,nosuid,size=3G     0 0
[rocketmouse at archlinux ~]$ systemctl status tmp.mount 
● tmp.mount - Temporary Directory /tmp
     Loaded: loaded (/proc/self/mountinfo; static)
     Active: active (mounted) since Sat 2021-07-03 21:09:58 CEST; 3 weeks 2 days ago
      Where: /tmp
       What: tmpfs
       Docs: https://systemd.io/TEMPORARY_DIRECTORIES
             man:file-hierarchy(7)
             https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
      Tasks: 0 (limit: 9398)
     Memory: 32.0K
        CPU: 1ms
     CGroup: /system.slice/tmp.mount

Jul 03 21:09:58 archlinux systemd[1]: Mounting Temporary Directory (/tmp)...
Jul 03 21:09:58 archlinux systemd[1]: Mounted Temporary Directory (/tmp).
[rocketmouse at archlinux ~]$ systemctl status systemd-tmpfiles-clean
○ systemd-tmpfiles-clean.service - Cleanup of Temporary Directories
     Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.service; static)
     Active: inactive (dead) since Mon 2021-07-26 21:35:55 CEST; 1h 47min ago
TriggeredBy: ● systemd-tmpfiles-clean.timer
       Docs: man:tmpfiles.d(5)
             man:systemd-tmpfiles(8)
    Process: 1018193 ExecStart=systemd-tmpfiles --clean (code=exited, status=0/SUCCESS)
   Main PID: 1018193 (code=exited, status=0/SUCCESS)
        CPU: 65ms

Jul 26 21:35:55 archlinux systemd[1]: Starting Cleanup of Temporary Directories...
Jul 26 21:35:55 archlinux systemd[1]: systemd-tmpfiles-clean.service: Deactivated successfully.
Jul 26 21:35:55 archlinux systemd[1]: Finished Cleanup of Temporary Directories.
[rocketmouse at archlinux ~]$ systemctl status systemd-tmpfiles-clean.timer 
● systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories
     Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.timer; static)
     Active: active (waiting) since Sat 2021-07-03 21:09:58 CEST; 3 weeks 2 days ago
    Trigger: Tue 2021-07-27 21:35:55 CEST; 22h left
   Triggers: ● systemd-tmpfiles-clean.service
       Docs: man:tmpfiles.d(5)
             man:systemd-tmpfiles(8)

Jul 03 21:09:58 archlinux systemd[1]: Started Daily Cleanup of Temporary Directories.
[rocketmouse at archlinux ~]$ man systemctl | grep " mask UNIT" -A4
       mask UNIT...
           Mask one or more units, as specified on the command line. This will link these unit files to /dev/null, making it impossible to start them. This is a stronger version of
           disable, since it prohibits all kinds of activation of the unit, including enablement and manual activation. Use this option with care. This honors the --runtime option to
           only mask temporarily until the next reboot of the system. The --now option may be used to ensure that the units are also stopped. This command expects valid unit names only,
           it does not accept unit file paths



More information about the Ubuntu-devel-discuss mailing list