[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#44644: /tmp/emacs0/ not cleaned up upon exit
From: |
Eli Zaretskii |
Subject: |
bug#44644: /tmp/emacs0/ not cleaned up upon exit |
Date: |
Tue, 24 Nov 2020 17:28:09 +0200 |
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: jidanni@jidanni.org, 44644@debbugs.gnu.org
> Date: Tue, 24 Nov 2020 06:42:47 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> True. Looking at the code, it looks like having `server-start' add
> >> `server-force-delete' to `kill-emacs-query-functions' would do the
> >> trick?
> >>
> >> Does anybody see any downsides to doing that?
> >
> > What if the Emacs that's being killed is not the one that created the
> > server file?
>
> I didn't read the code closely enough -- emacs-server already does this,
> but only deletes the /tmp/emacs0/server socket, but leaves the directory
> behind. As you say, there may be more than one server (with different
> names), so deleting the directory may fail, but the final Emacs that
> exits should successfully delete directory, at least, and I've added
> that to Emacs 28.
Wait a moment: we are deleting the _directory_ of the server file?
Sorry, I was confused and thought you were talking about the server
file itself.
The directory thing is different. First, its place and purpose
depends on whether server-use-tcp is nil (Posix platforms) or not
(MS-Windows or when the user of a Posix host connects from another
system). If this is non-nil, the directory of the server file is
server-auth-dir, which is:
(defcustom server-auth-dir (locate-user-emacs-file "server/")
Since this is a defcustom, I don't think we can delete that directory
behind user's back, even if it is empty.
If server-use-tcp is nil (the default), then the directory of
server-file is computed thusly:
(defvar server-socket-dir
(if internal--daemon-sockname
(file-name-directory internal--daemon-sockname)
(and (featurep 'make-network-process '(:family local))
(let ((xdg_runtime_dir (getenv "XDG_RUNTIME_DIR")))
(if xdg_runtime_dir
(format "%s/emacs" xdg_runtime_dir)
(format "%s/emacs%d" (or (getenv "TMPDIR") "/tmp")
(user-uid))))))
I don't think it's kosher to delete $XDG_RUNTIME_DIR, even if it's
empty, since it is probably used by more than the server? And if
XDG_RUNTIME_DIR is not defined, and we use a directory under /tmp,
then the system cleans that up from time to time, doesn't it?
So bottom line, I don't think we should do this, at least not
unconditionally.
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, 積丹尼 Dan Jacobson, 2020/11/14
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Lars Ingebrigtsen, 2020/11/16
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Eli Zaretskii, 2020/11/17
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, 積丹尼 Dan Jacobson, 2020/11/17
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Lars Ingebrigtsen, 2020/11/24
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Andreas Schwab, 2020/11/24
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Lars Ingebrigtsen, 2020/11/24
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Andreas Schwab, 2020/11/24
- bug#44644: /tmp/emacs0/ not cleaned up upon exit,
Eli Zaretskii <=
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Jean Louis, 2020/11/24
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Lars Ingebrigtsen, 2020/11/25
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Eli Zaretskii, 2020/11/26
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Lars Ingebrigtsen, 2020/11/27
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Eli Zaretskii, 2020/11/27
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Jean Louis, 2020/11/27
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, Lars Ingebrigtsen, 2020/11/27
- bug#44644: /tmp/emacs0/ not cleaned up upon exit, 積丹尼 Dan Jacobson, 2020/11/27