Emacs Server setting
EmacsEmacs를 서버-클라이언트 서비스로 구성하는 과정에 대해 기록한다.
환경은 Ubuntu 18.04, Emacs 26.2 이다.
참고
- 39 Using Emacs as a Server
- RHEL/CentOS 7 systemctl 사용법
- How to get back Launcher icon for emacs in 16.04?
- Emacs Client
Starting Emacs Deamon with systemd
Systemd 는 대부분의 리눅스 배포판에서 시작 프로그램을 관리하는 프로그램이다. 아래 emacs.service 파일은 emacs26.2 소스(emacs-26.2/etc/emacs.service
)에 들어있는 것을 내 환경에 알맞게 수정한 것이다. 아래와 같이 수정하여~/.config/systemd/user/emacs.service
를 만들어 준다.
## If your Emacs is installed in a non-standard location, you may need
## to copy this file to a standard directory, eg ~/.config/systemd/user/ .
## If you install this file by hand, change the "Exec" lines below
## to use absolute file names for the executables.
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=simple
ExecStart=/usr/local/bin/emacs --fg-daemon
ExecStop=/usr/local/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure
[Install]
WantedBy=default.target
ExecStart 에 emacs 실행 경로와 함께 넣어준 --fg-daemon
인자는 포어그라운드 데몬으로 실행하라는 의미이다. 참고로 --bg-daemon
혹은 --daemon
은 백그라운드 데몬으로 실행하라는 의미이다.
그리고 터미널에서 아래와 같이 실행하여 이맥스 서버를 실행시킨다.
systemctl enable --user emacs
systemctl start --user emacs
Launcher 아이콘 생성
런처 아이콘 역시 Emacs 26.2 소스 코드에서 만들어 놓은 파일을 고쳐서 사용하면 된다. emacs26.2/etc/emacs.desktop
을 아래와 같이 수정하여 .local/share/applications/emacs.desktop
을 만들어준다.
[Desktop Entry]
Name=Emacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacsclient -c -a "emacs" %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;
emacsclient 의 -c
옵션은 새 이맥스 프레임을 생성하여 실행하라는 의미이고, -a
는 이맥스 데몬이 실행중이지 않을 경우 fallback 으로 할 액션에 대해 정의하는 것이다.
그리고 터미널에서 아래 명령어를 실행해 주면 finder 같은 곳에서 emacs를 검색하면 위에서 지정한 동작을 수행하는 아이콘이 뜰 것이다. 실행시켜주고 dock 에 고정하면 된다.
sudo desktop-file-install --dir=/usr/share/applications/ ~/.local/share/applications/emacs.desktop
'Emacs' 카테고리의 다른 글
Emacs - Python 문서 열람시 멈춤현상 (0) | 2019.09.18 |
---|---|
Emacs Wdired 모드 (0) | 2019.06.29 |
macOS 에서 Emacs 데몬이 종료되지 않는 문제 (0) | 2019.06.07 |
Create a new file in ido mode (0) | 2019.06.07 |
EIN and virtualenvwrapper (0) | 2018.07.22 |