summaryrefslogtreecommitdiff
path: root/lisp/server.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-05-08 14:22:30 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-05-08 14:22:30 +0200
commit53dfb51f55bf66bb939505c60d12952dd64820a7 (patch)
tree434fa17085525247fee2efbe4c1239aafce194cb /lisp/server.el
parent12a37ef6d248ad101407e1800542bc6995044d95 (diff)
downloademacs-53dfb51f55bf66bb939505c60d12952dd64820a7.tar.gz
Don't delete socket on server exit if it was passed in
* lisp/server.el (server-sentinel): Don't delete the socket if it was passed in to Emacs (bug#47511).
Diffstat (limited to 'lisp/server.el')
-rw-r--r--lisp/server.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/server.el b/lisp/server.el
index 220694f6cbf..17332a2b0a1 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -413,9 +413,14 @@ If CLIENT is non-nil, add a description of it to the logged message."
;; for possible servers before doing anything, so it *should* be ours.
(and (process-contact proc :server)
(eq (process-status proc) 'closed)
+ ;; If this variable is non-nil, the socket was passed in to
+ ;; Emacs, and not created by Emacs itself (for instance,
+ ;; created by systemd). In that case, don't delete the socket.
+ (not internal--daemon-sockname)
(ignore-errors
(delete-file (process-get proc :server-file))))
- (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc)
+ (server-log (format "Status changed to %s: %s"
+ (process-status proc) msg) proc)
(server-delete-client proc))
(defun server--on-display-p (frame display)