まずは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