emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug in server-start


From: Juanma Barranquero
Subject: Re: bug in server-start
Date: Tue, 16 Dec 2008 10:38:10 +0100

On Tue, Dec 16, 2008 at 08:03, Ulrich Mueller <address@hidden> wrote:

> Exit with an error, please. And if possible, the parent process should
> return a nonzero exit status. (AFAICS, not calling daemon-initialized
> should be sufficient for this, but I haven't tested it.)

Please, try the attached patch.

    Juanma



Index: lisp/server.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/server.el,v
retrieving revision 1.176
diff -u -2 -r1.176 server.el
--- lisp/server.el      12 Dec 2008 00:33:34 -0000      1.176
+++ lisp/server.el      16 Dec 2008 09:21:13 -0000
@@ -480,5 +480,6 @@
          (ignore-errors (delete-file server-file))
        (setq server-mode nil) ;; already set by the minor mode code
-       (error "Server %S is already running" server-name))
+       (display-warning 'server (format "Server %S is already running" 
server-name))
+       (setq leave-dead t))
       ;; If this Emacs already had a server, clear out associated status.
       (while server-clients
@@ -487,5 +488,5 @@
       (if leave-dead
          (progn
-           (server-log (message "Server stopped"))
+           (unless (eq t leave-dead) (server-log (message "Server stopped")))
            (setq server-process nil))
        ;; Make sure there is a safe directory in which to place the socket.
Index: lisp/startup.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/startup.el,v
retrieving revision 1.523
diff -u -2 -r1.523 startup.el
--- lisp/startup.el     22 Nov 2008 20:44:42 -0000      1.523
+++ lisp/startup.el     16 Dec 2008 09:22:11 -0000
@@ -695,4 +695,5 @@

 (defvar server-name)
+(defvar server-process)

 (defun command-line ()
@@ -1221,5 +1222,8 @@
       (when (stringp dn) (setq server-name dn))
       (server-start)
-      (daemon-initialized)))
+      (if server-process
+         (daemon-initialized)
+       (message "Could not start daemon %S" server-name)
+       (kill-emacs 1))))

   ;; Run emacs-session-restore (session management) if started by




reply via email to

[Prev in Thread] Current Thread [Next in Thread]