Không thể kết nối bằng emacsclient


7

Tôi đang bắt đầu máy chủ emacs bằng

systemctl --now --user enable emacs

Máy chủ đó đang chạy, nếu tôi chạy

systemctl --user status emacs

tôi đã nhận

$ 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

Nhưng, khi tôi cố gắng kết nối bằng emacsclient -c some_file.py

tôi đã nhận

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

Tôi đang thiếu gì?

CHỈNH SỬA :

Theo lời khuyên của @Tobias tôi đã chạy

$ sudo netstat -xauopen | grep emacs

Và kết quả là như sau:

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

Tôi đã mong đợi để xem thêm thông tin, nhưng điều này có vẻ không đúng. Chuyện gì đang xảy ra vậy?


Vui lòng thêm phiên bản emacs bạn đang chạy.
Tobias

GNU Emacs 27.0.50
nanounanue

Bạn cũng cần phải vượt qua --nowtùy chọn systemctl --user enable emacshoặc bạn cũng cần phải chạy systemctl --user start emacs. Nhưng tôi cho rằng bạn đã làm một cái gì đó như thế vì tình trạng chạy của emacs.
Tobias

Phải, nhưng tôi vẫn không may mắn kết nối với nó :(
nanounanue

Tôi đã thêm --nowvào các tùy chọn.
Tobias

Câu trả lời:


1

Tôi đang sử dụng phiên bản 24-25 emacs làm 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

Với 26.1+ thêm tùy chọn --fg-daemon--bg-daemon. Hãy thử đơn vị ngã ba --daemonbí danh cũ --bg-daemon. Có lẽ làm việc.

Cũng thêm vào emacsclient -a '' -t.


Tôi đã thử --bg--fgcác tùy chọn và không có may mắn. Xem chủ đề bình luận trong câu hỏi để biết thêm thông tin
nanounanue

0

Tôi có cùng một vấn đề. Tôi đã đưa ra một kịch bản để bắt đầu emacsclient đang hoạt động tốt với tôi:

#!/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 "$@"

Thật không may, đây dường như không phải là giải pháp tốt nhất vì nó sẽ không khắc phục việc khởi chạy emacsclient trực tiếp (theo dòng lệnh hoặc trong tệp trên máy tính để bàn). Tuy nhiên, tôi có một phím tắt để khởi chạy nó bằng cách sử dụng tập lệnh.


Ngoài ra, dựa trên stackoverflow.com/a/28553846/1815486 , bạn có thể sử dụng SOCKET=$(lsof -c emacs | grep $USER | grep server | grep STREAM | awk '{print $9}')để tìm nó bất kể nó ở đâu (trong trường hợp bạn đặt nó ở nơi khác)
aiguofer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.