No se puede conectar usando emacsclient


7

Estoy iniciando el servidor emacs usando

systemctl --now --user enable emacs

Ese servidor se está ejecutando, si ejecuto

systemctl --user status emacs

tengo

$ systemctl --user status emacs
● emacs.service - Emacs text editor
   Loaded: loaded (/usr/local/lib/systemd/user/emacs.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-09 09:27:56 CDT; 2 days ago
     Docs: info:emacs
           man:emacs(1)
           https://gnu.org/software/emacs/
 Main PID: 17613 (emacs)
   CGroup: /user.slice/user-1000.slice/user@1000.service/emacs.service
           └─17613 /usr/local/bin/emacs --fg-daemon

Pero cuando intento conectarme usando emacsclient -c some_file.py

tengo

$ emacsclient -t .psqlrc
emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".

¿Qué me estoy perdiendo?

EDITAR :

Siguiendo el consejo de @Tobias corrí

$ sudo netstat -xauopen | grep emacs

Y el resultado fue el siguiente:

unix  3      [ ]         STREAM     CONNECTED     61841    17982/emacs          
unix  3      [ ]         STREAM     CONNECTED     62269    17982/emacs          
unix  3      [ ]         STREAM     CONNECTED     62268    17982/emacs   

Esperaba ver más información, pero esto no parece correcto. ¿Qué está pasando?


Agregue qué versión de emacs está ejecutando.
Tobias

GNU Emacs 27.0.50
nanounanue

También debe pasar la --nowopción systemctl --user enable emacso, además, debe ejecutar systemctl --user start emacs. Pero supongo que ya hiciste algo así debido al estado de ejecución de emacs.
Tobias

Sí, pero aún así no tuve suerte al conectarme a él :(
nanounanue

Agregué --nowa las opciones.
Tobias

Respuestas:


1

Estoy usando la versión 24-25 emacs como daemon.

 cat /etc/systemd/user/emacs.service

 [Unit]
 Description=Emacs: the extensible, self-documenting text editor

 [Service]
 Type=forking
 ExecStart=/usr/bin/emacs --daemon
 ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
 Environment=SSH_AUTH_SOCK=%t/keyring/ssh
 Restart=always

 [Install]
 WantedBy=default.target

Con 26.1+ agregar opciones --fg-daemony --bg-daemon. Pruebe la antigua unidad de horquilla --daemonalias --bg-daemon. Quizás trabajo.

También agregue a emacsclient -a '' -t.


Probé los --bgy las --fgopciones y sin suerte. Vea el hilo de comentarios en la pregunta para obtener más información
nanounanue

0

Estoy teniendo el mismo problema Se me ocurrió un script para iniciar emacsclient que funciona bien para mí:

#!/bin/sh

SOCKET=/tmp/emacs$UID/server
PARAMS="--socket-name=$SOCKET"

if [[ $TMUX || $SSH_CLIENT ]]
then
    PARAMS+=" -t"
else
    PARAMS+=" -c"
fi

exec /usr/bin/emacsclient $PARAMS "$@"

Desafortunadamente, esta no parece ser la mejor solución, ya que no solucionará el lanzamiento de emacsclient directamente (ya sea en la línea de comandos o en el archivo de escritorio). Sin embargo, tengo un atajo de teclado para iniciarlo usando el script.


Alternativamente, basado en stackoverflow.com/a/28553846/1815486 , puede usarlo SOCKET=$(lsof -c emacs | grep $USER | grep server | grep STREAM | awk '{print $9}')para encontrarlo independientemente de dónde esté (en caso de que lo haya configurado en otro lugar)
aiguofer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.