# 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:
Активируем сервис командой 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
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