emacsでデスクトップ機能( http://www.emacswiki.org/emacs/DeskTop )を使おうとしています。.emacsに次のコードを追加しました:
(require 'desktop)
(setq desktop-save t)
(setq desktop-load-locked-desktop t)
(setq *desktop-dir* (list (expand-file-name "~/.emacs.d/desktop")))
(setq desktop-base-file-name ".emacs.desktop")
(setq desktop-path *desktop-dir*)
(setq desktop-dir *desktop-dir*)
(desktop-save-mode 1)
(desktop-read)
「$emacs-nw」のように呼び出すスタンドアロンアプリケーションのようにemacsを使用する場合、すべてが正常ですが、emacsclientで同じ構成を使用しようとすると、emacsはサーバーの起動時にハングします。最後の2行をコメントアウトすると、emacsサーバーが期待どおりに起動します。
/etc/init.dの公式Gentooスクリプトの一部を参照して、emacsデーモンを起動してください。
: ${EMACS:=/usr/bin/emacs}
: ${EMACS_OPTS:=--daemon}
: ${EMACS_SHELL=/bin/bash}
: ${EMACS_START:=/usr/libexec/emacs/emacs-wrapper.sh}
: ${EMACS_TIMEOUT:=30}
: ${EMACS_SHUTDOWN_TIMEOUT:=10}
USER=${SVCNAME#*.}
PIDFILE_DIR=/var/run/emacs/${USER}
PIDFILE=${PIDFILE_DIR}/emacs.pid
...
local home
checkconfig || return 1
eval home="~${USER}"
SHELL=${EMACS_SHELL:-$(awk -F: "\$1 == \"${USER}\" { print \$7 }" \
/etc/passwd)}
export SHELL EMACS EMACS_TIMEOUT
ebegin "Starting Emacs daemon for user ${USER}"
if [ -z "${RC_SVCNAME}" ]; then
# baselayout-1
start-stop-daemon --start \
--user "${USER}" --exec "${EMACS}" --pidfile "${PIDFILE}" \
--chuid "${USER}" --chdir "${home}" --env HOME="${home}" \
--startas "${EMACS_START}" -- ${EMACS_OPTS}
else
# OpenRC
start-stop-daemon --start \
--user "${USER}" --pidfile "${PIDFILE}" --chdir "${home}" \
--exec "${EMACS_START}" -- ${EMACS_OPTS}
fi
eend $?
どういうわけかemacsclientの問題をデバッグすることは可能ですか?多分誰かがヒントを与えることができますか?
PS私はGentooLinux、emacs-vcs-23.2.9999パッケージ、ターミナルのみを使用しています。