綾小路龍之介の素人思考

[emacs] デーモンモード(emacs --daemon)で起動し、クライアント(emacsclient -c)を起動。

あらかじめemacsを立ち上げた状態にしておいて、それ以降の起動はクライアントという形で起動する。そうすると、起動時間が短縮できるらしい。大きなシステムで複数のユーザがemacsを使うときには有効だけど、一人しかログインしないシステムでは殆ど無意味だな。

まずはemacsがデーモンモードをサポートしているかチェックする。emacs23からの新機能なのでdebian squeezeでは使うことが出来る。

$ emacs --help | grep daemon
--daemon                    start a server in the background
$ emacs --version
GNU Emacs 23.2.1
Copyright (C) 2010 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

デーモン側を起動する。

$ emacs --daemon
("emacs")
Loading 00debian-vars...
Loading 00debian-vars...done
Loading /etc/emacs/site-start.d/20apel.el (source)...
Loading /etc/emacs/site-start.d/20apel.el (source)...done
Loading /etc/emacs/site-start.d/40mule-ucs.el (source)...
Loading /etc/emacs/site-start.d/40mule-ucs.el (source)...done
Loading /etc/emacs/site-start.d/50a2ps.el (source)...
Loading /etc/emacs/site-start.d/50a2ps.el (source)...done
Loading /etc/emacs/site-start.d/50autoconf.el (source)...
Loading /etc/emacs/site-start.d/50autoconf.el (source)...done
Loading /etc/emacs/site-start.d/50cmake.el (source)...
Loading /etc/emacs/site-start.d/50cmake.el (source)...done
Loading /etc/emacs/site-start.d/50cmake-data.el (source)...
Loading /etc/emacs/site-start.d/50cmake-data.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done
Loading /etc/emacs/site-start.d/50flim.el (source)...
Loading /etc/emacs/site-start.d/50flim.el (source)...done
Loading /etc/emacs/site-start.d/50gettext.el (source)...
Loading /etc/emacs/site-start.d/50gettext.el (source)...done
Loading /etc/emacs/site-start.d/50git-core.el (source)...
Loading /etc/emacs/site-start.d/50git-core.el (source)...done
Loading /etc/emacs/site-start.d/51semi.el (source)...
Loading /etc/emacs/site-start.d/51semi.el (source)...done
Loading /etc/emacs/site-start.d/65wl.el (source)...
Loading /etc/emacs/site-start.d/65wl.el (source)...done
Starting Emacs daemon.

psとtopで使用メモリ量を比較するために、emacsクライアントと、スタンドアロンemacsを起動する。この結果を見る限りでは、あまりメリットはない様子。

$ emacsclient -c
$ emacs
$ top -bcs -u **** -n 1 | grep emacs
28166 ****      20   0 27512 8892 4452 S  0.0  3.5   0:00.64 emacs --daemon
29566 ****      20   0  1680  480  404 S  0.0  0.2   0:00.00 emacsclient -c
29589 ****      20   0 27420 9.9m 5904 S  0.0  4.0   0:00.48 emacs
29599 ****      20   0  3852  736  652 S  0.0  0.3   0:00.00 grep emacs

emacsclientを2つ立ち上げるとメモリ的には得ということになる。しかし、編集内容は2つのemacsclientで共有されるので、結局スタンドアロンで編集するのとあまり変わらない気がする。編集内容やバッファはどのemacsclientも共通なので(同期している)ので、同じemacsを別のウィンドウやターミナルに表示させている感覚。

$ top -bcs -u **** -n 1 | grep emacs
28166 ****      20   0 28356 9920 4620 S  0.0  3.9   0:01.21 emacs --daemon
29589 ****      20   0 27420 9.9m 5904 S  0.0  4.0   0:00.48 emacs
29683 ****      20   0  1680  480  404 S  0.0  0.2   0:00.00 emacsclient -c
29684 ****      20   0  1680  480  404 S  0.0  0.2   0:00.00 emacsclient -c
29691 ****      20   0  3852  736  652 S  0.0  0.3   0:00.00 grep emacs

emacsclientを終了してもemacsデーモンは終了しない。終了させるには、以下のようにするか、emacsclientでM-x kill-emacsする。

$ emacsclient -e '(kill-emacs)'

topで確認すると、--daemonが消えていることが判る。

$ top -bcs -u *** -n 1 | grep emacs
29589 ****      20   0 27420 9.9m 5904 S  0.0  4.0   0:00.48 emacs
29723 ****      20   0  3852  732  652 S  0.0  0.3   0:00.00 grep emacs

リファレンス

  1. ぷかぷか~: emacsをデーモンとして起動しておく
  2. Emacsサーバを適切に終了する - 貳佰伍拾陸夜日記
  3. ゆたりんブログ: emacs23.1がリリース daemon機能を試用してみる
  4. emacsclient の使い方の種類と、便利な使い方 - 電卓片手に
  5. emacs デーモン 終了 - Google 検索
  6. emacsをデーモン化すると超便利 - 射撃しつつ前転
  7. emacs --daemon - 落書き、時々落学
  8. emacs デーモン - Google 検索
  9. EmacsWiki: Emacs As Daemon

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-10-15T06:55:12+09:00
  2. Modified: 2009-10-15T06:55:12+09:00
  3. Generated: 2016-12-30T23:10:16+09:00