#  Re: Еmacs как демон
btimofeev (tavern,13) → vit01  –  20:25:47 2020-08-31

vit01> ====
vit01> (require 'server)
vit01> (unless (server-running-p)
vit01> (server-start))
vit01> ====

Вместо этого можно грузить через systemd при логине пользователя (в этом случае даже самый первый запуск редактора будет быстрый):

Добавляем файл ~/.config/systemd/user/emacs.service:

====
[Unit]
Description=Emacs Daemon

[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook 'nil) (kill-emacs))"
Restart=always

[Install]
WantedBy=default.target
====


Активируем сервис командой systemctl --user enable emacs.service и перелогиниваемся.

vit01> Сам редактор запускаю с помощью скрипта-обёртки. Если емакс уже запущен, то скрипт дёргает emacsclient, а если не запущен, то запускает его

vit01> ====
vit01> #!/bin/bash

vit01> if [ "`pgrep emacs`" = "" ]; then
vit01> emacs $@ & exit
vit01> else
vit01> emacsclient --no-wait $@
vit01> fi
vit01> ====

А этот скрипт можно заменить одной строкой:

emacsclient -c -a emacs