我正在尝试将 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