systemd 서비스 관리자 를 사용하는 운영 체제 (현재는 대부분의 GNU / Linux 배포판이 포함됨)를 사용하는 경우 가장 좋은 해결책은 systemd를 사용하여 부팅시 Emacs 데몬을 시작하는 것입니다. $HOME/.config/systemd/user/emacs.service
다음 내용 으로 파일 을 작성하여이를 수행 할 수 있습니다 .
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=simple
ExecStart=/usr/bin/emacs --fg-daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure
[Install]
WantedBy=default.target
그런 다음 서비스를 시작하고 이후의 모든 부팅에 대해 자동으로 시작되도록 설정해야합니다.
$ systemctl enable --user emacs
$ systemctl start --user emacs
이제 emacsclient
평소처럼 사용할 수 있습니다 . 당신은 일반적으로 그것을 실행하는 경우 -n
, -c
또는 -t
옵션, 당신은 당신의 쉘에서 별칭을 설정할 수 있습니다. 원하는 방식 으로 실행 하도록 EDITOR
및 / 또는 VISUAL
환경 변수 를 설정할 수도 있습니다 emacsclient
. 예를 들어, Bash에서 .bashrc
파일에 다음을 추가 할 수 있습니다 .
alias emc="emacsclient -c"
export VISUAL="emacsclient -c"
export EDITOR="emacsclient -t"
Emacs 데몬을 중지해야하는 경우 다음과 같이 수행 할 수 있습니다.
$ systemctl stop --user emacs
부팅시 실행을 영구적으로 중지하려면 다음을 수행하십시오.
$ systemctl disable --user emacs
emacs --eval "(suspend-frame)"
보다는 연습에 익숙하지 않다 . emacs를 데몬으로 호출하지 않는 이유가 있습니까? 당신은 그것이 실행되고 있는지 확인하기 위해 같은 것을 사용할 수 있습니다 .emacs --daemon
pgrep -U `whoami` emacs || emacs --daemon &