This discussion is archived
6 Replies Latest reply: Nov 8, 2012 12:56 PM by alan.pae RSS

Let the system delete all stuff in directory /tmp just before shutdown?

562466 Newbie
Currently Being Moderated
How can I tell Solaris to delete all files (and subfolders) in directory /tmp
just before shutdown. The stuff should not be deleted manually by the user but automatically by the system.

If it easier zu achieve a delete at next startup/boot time whould be acceptable as well.

How does that work?

Thank you
Peter
  • 1. Re: Let the system delete all stuff in directory /tmp just before shutdown?
    DarrenMoffat Explorer
    Currently Being Moderated
    /tmp is a tmpfs filesystem on Solaris which means that it is not persistent over reboot. So this happens automatically.
    Anything you see in /tmp after a reboot is because it has been newly created.

    /var/tmp is not a tmpfs filesystem and does persist over reboot.
  • 2. Re: Let the system delete all stuff in directory /tmp just before shutdown?
    user171873 Explorer
    Currently Being Moderated
    It would perhaps be more accurate to say that BY DEFAULT /tmp is a tmpfs filesystem which is not persistent across reboots. However, this doesn't have to be the case and given that the question is being asked this may not be the case on the host in question. if the system's /etc/vfstab contains something like the following line:

    swap          -          /tmp          tmpfs     -     yes     -

    then your /tmp is in memory and is not persistent. If that is not the case, restoring this line will restore the default behavior of storing /tmp in memory and making it non-persistent. If this is what you want, great. The contents of /tmp get deleted automatically when you reboot. [You may also want to consider putting a limit on the size of /tmp on this line - see the mount_tmpfs manual page for details.]

    There are circumstances where you may prefer to not keep /tmp in memory and use file storage space instead. In that case you may want to have a script to delete files. You can do this at boot (or shutdown) using a SMF service or a legacy /etc/rc*.d script if you don't understand SMF. If you can use tmpfs that is easier.
  • 3. Re: Let the system delete all stuff in directory /tmp just before shutdown?
    DarrenMoffat Explorer
    Currently Being Moderated
    While technically true, that is not a configuration that the Solaris installation methods supports creating. I'm also not sure if we would consider it a supported configuration any more. I'll check with some of my other senior Solaris engineering colleagues and see what the consensus is on wither a non tmpfs /tmp is supportable.
  • 4. Re: Let the system delete all stuff in directory /tmp just before shutdown?
    DarrenMoffat Explorer
    Currently Being Moderated
    I've discussed the issue of a non tmpfs /tmp with my colleagues and we agreed that /tmp must be on tmpfs anything else is not
    a supported configuration. While it isn't explicit that /tmp is tmpfs the filesystem(5) man page does say this:

    /tmp

    Directory that contains temporary files that are removed
    during a boot operation.

    Now compare that to what it says about /var/tmp


    /var/tmp

    Directory that contains files that vary in size or pres-
    ence during normal system operations. The content of
    this directory is not removed during a boot operation.
    It is possible to change the default behavior for
    /var/tmp to clear all of the files except editor tem-
    porary files by setting the clean_vartmp property value
    of the rmtmpfiles service. This is done with the follow-
    ing commands:

    # svccfg -s svc:/system/rmtmpfiles setprop\
    options/clean_vartmp = "true"
    # svcadm refresh svc:/system/rmtmpfiles:default


    The solaris.smf.value.rmtmpfiles authorization is
    required to modify this property.


    A future release of Solaris may well enforce that /tmp is tmpfs because it may change when it gets mounted, similar to what has been done with /var/run -> /system/volatile (which is mounted by the kernel before init starts).

    Darren Moffat
    Senior Principal Engineer
    Solaris Core Technologies
  • 5. Re: Let the system delete all stuff in directory /tmp just before shutdown?
    user171873 Explorer
    Currently Being Moderated
    Thanks for clarifying this.

    We use tmpfs at our site and my original comments were prompted by the consideration that by asking the question the user indicated that /tmp wasn't cleared upon reboot and therefore tmpfs probably wasn't being used at that site. I've been admininstering for Solaris for a long time and when tmpfs started being used here we ran into problems because some of our users had processing which involved dumping lots of data into /tmp which caused excessive paging. We resolved the problem by setting a limit on the size of /tmp and asking them to change their processing to use /var/tmp or other areas. Of course we could have decided that tmpfs is causing the problem so we'll just comment it out of /etc/vfstab. Apparently, we made the right choice at the time but it could have gone the other way. Particularly if we had had less control over our user activities.

    It would appear that using tmpfs is the best choice if it is at all possible. And that avoids the need for cleanup scripts.
  • 6. Re: Let the system delete all stuff in directory /tmp just before shutdown?
    alan.pae Journeyer
    Currently Being Moderated
    On a single user system such as my laptop I love moving large files to /tmp and then manipulating them there because it's a heck of a lot faster then doing it on disk.

    alan

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points