Centos 7.6 emacsclient找不到套接字

时间:2018-12-12 13:47:24

标签: emacs centos emacsclient emacs26

我按照说明

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files

像这样在/etc/systemd/system/下创建emacs.service

Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

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

[Install]
WantedBy=default.target

然后我执行:

systemctl daemon-reload
systemctl start emacs.service

emacs.service成功启动

但是,当我在终端中运行emacsclient -t时,它显示:

emacsclient: can't find socket; have you started the server?

我发现,如果我切换到root并在终端中运行emacsclient -t,它将很好地工作。

实际上,主机名是/tmp/emacs0/server, 但是我无法访问它,因为它的所有者是root。

emacsclient -t -s /tmp/emacs0/server
emacsclient: can't stat /tmp/emacs0/server: Permission denied
emacsclient: error accessing socket "/tmp/emacs0/server"

我试图像这样在emacs.service中添加User选项

[Service]
User=hye
Group=hye
Type=forking

但是systemctl无法启动此服务,它总是失败。

我还尝试将emacs.service放在~/.config/systemd/user/

但是centos 7不支持systemctl --user

系统信息:

Centos 7.6
Emacs-26.1 manually installed

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。...

..它归结为我在使用emacs快照作为emacs

   update-alternatives --display emacs

..和emacsclient的不同版本

将其设置为相同的版本,然后发生好事。

sudo update-alternatives --set emacsclient /usr/bin/emacsclient-snapshot