[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Start the emacs-server once...
From: |
Allan Gottlieb |
Subject: |
Re: Start the emacs-server once... |
Date: |
Thu, 21 Aug 2008 10:41:55 -0400 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
At Thu, 21 Aug 2008 12:55:00 +0100 Alex Bennee <ajb-ml@cbnl.com> wrote:
> Hi,
>
> I want to set-up emacs to start the server once per X sessions (and I
> guess once per screen session once I get multi-tty working). However
> there doesn't seem to be way to check in emacs if the server is
> currently running.
>
> So far the best I can come up with is having my start-up emacs with the
> args:
>
> emacs --eval (defvar this-is-the-master t)
>
> And appropriate hackery in the .emacs. Is there a nicer way to deal with
> this?
I don't know if it is nicer (I suspect it is similar)
but I use the following so that the invocation of emacs is not changed.
;; Use emacsclient/emacsserver
;;
;; Using code from Tassilo Horn so a server started on first emacs only
;; The code should remove the file when the server ends.
;; Sometimes the file remains (why?) so I explicitly invoke the removal
;; function from ~/bin/Xinitialize.
(defvar ajg-server-lock-file "~/.emacs.d/server.lock" "Emacs server lock file.")
(defun ajg-server-start ()
(interactive)
(shell-command (concat "touch " ajg-server-lock-file))
(server-start)
(message "Emacs Server started...")
(setq frame-title-format '("Emacs (Server): %b <%f>")))
(if (and (not (file-exists-p ajg-server-lock-file))
(not noninteractive))
(ajg-server-start)
(message "Emacs Server NOT started, because lockfile exists.")
(setq frame-title-format
'("Emacs: %b <%f>")))
(defun ajg-server-remove-lock-file ()
(interactive)
(when (boundp 'server-process)
(shell-command (concat "rm " ajg-server-lock-file))))
;; Remove lock file when emacs server ends
(add-hook 'kill-emacs-hook
'ajg-server-remove-lock-file)
HTH
allan