]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't delete socket on server exit if it was passed in
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 8 May 2021 12:22:30 +0000 (14:22 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 8 May 2021 12:22:30 +0000 (14:22 +0200)
* lisp/server.el (server-sentinel): Don't delete the socket if it
was passed in to Emacs (bug#47511).

lisp/server.el

index 220694f6cbfb00896df3ead54a322378bc2bdd07..17332a2b0a16501ad8d2fd3478c2f6cfdcd4a27b 100644 (file)
@@ -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)