如何启动 emacs 作为服务?

如何启动 emacs 作为服务?

我正在尝试将 emacs 守护程序作为服务启动,但该服务在启动时立即停止。

在里面Emacs此服务脚本针对的页面systemd

[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=simple
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure

[Install]
WantedBy=default.target

但我无法启动守护进程

我究竟做错了什么?

操作系统:Ubuntu 18.04.1 LTS

Emacs:25.2

答案1

服务文件systemd似乎需要一些修改才能正常工作。从您提供的链接来看,该--fg-daemon选项仅适用于Emacs 26.1+,而下面的版本应该使用--daemon(在Emacs 23.1)。
此外,应该Type=采用分叉,因为emacs是分叉。

因此最终的systemd单元应该如下所示。

user@host:~$ cat .config/systemd/user/emacs.service 
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

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

[Install]
WantedBy=default.target

应用更改后,请不要忘记重新加载配置。

user@host:~$ systemctl daemon-reload --user

然后以普通用户身份启动服务。

user@host:~$ systemctl start --user emacs

相关内容