我按照指示
/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 中添加用户选项,就像这样
[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
任何意见,将不胜感激!