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 &