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/[email protected]/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?

nanounanue
fuente
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.

AfsmNGhr
fuente
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.

aiguofer
fuente
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