Dada a informação adicional, eu acho que o seu emacsclient está se conectando ao servidor emacs "errado". (Ou melhor, o primeiro que foi iniciado: invocações subseqüentes de emacs --daemon falharão ao iniciar o servidor já que o soquete de comunicação já está em uso). Se o daemon do emacs foi iniciado em uma sessão X anterior, ele está usando o erro errado. credenciais para se conectar ao display X e, assim, falhar.
Você pode descobrir qual processo do emacs está executando o servidor conectando-se a ele no modo não-gráfico / tty; execute o emacsclient em um terminal com a opção -nw :
emacsclient -nw
Você pode matar um emacs em execução fazendo com que ele execute o código LISP através do emacsclient:
emacsclient -t --eval '(progn (server-save-buffers-kill-terminal 1) (save-buffers-kill-emacs 1))'
onde:
- a opção
-t(alias para-nwou--tty) é para evitar que o Emacs se conecte à exibição X; - o
server-save-buffers-kill-terminaldesanexa o emacsclient antes de você informar ao Emacs para parar (caso contrário, ele emitirá um prompt de confirmação); - a função
save-buffers-kill-emacsé normalmente invocada porC-x C-c, o argumento1diz ao Emacs para não solicitar confirmação.
Além disso, eu acho que a razão pela qual você está tendo tantos emacs --daemon em execução é que você invoca o emacsclient com a opção --alternate-editor="" : o página do manual emacsclient (1) afirma que:
If the value of (the alternate) EDITOR is the empty string, then Emacs is started in daemon mode and emacsclient will try to connect to it.
Pode ser uma opção melhor para iniciar emacs --daemon do seu script de inicialização do X session (por exemplo, .gnomerc ou a configuração de sessão do GNOME) para que o gerenciador de sessão mate o daemon do emacs quando a sessão terminar.