8

我在远程服务器上使用 emacs。由于我的会话通常涉及数十个文件和进程,因此我一直在使用 emacs 服务器并通过 emacs 客户端连接到它。这样做的好处是,如果我的 ssh 连接由于某种原因被中断(这种情况经常发生,因为我在英格兰,服务器在加利福尼亚),我只需再次连接到 emacs 服务器并继续工作,就像什么都没发生一样。

然而,前段时间,服务器的管理员已经更改了它的配置,以便定期从 /tmp 目录中清除“未使用”的文件,这是 emacs 套接字默认所在的位置。由于时间戳在初始创建后没有更新,因此清除过程假定它是一个未使用的文件,这意味着我无法再连接到我的服务器,尽管它正在运行。

有人知道告诉emacs在默认目录以外的目录中创建套接字的方法吗?

顺便说一句,我还尝试使用定期更新套接字时间戳的脚本,但它仍然被删除。

提前致谢。

4

2 回答 2

6

从文档中看来,server-socket-dir并且server-auth-dir是您正在寻找的变量C-hvserver-socket-dirRET

放置服务器套接字的目录。如果不支持本地套接字,则为 nil。

C-hvserver-auth-dirRET

服务器身份验证文件的目录。我们只在 server-use-tcp' is non-nil. Otherwise we useserver-socket-dir' 时使用它。

于 2014-02-27T14:22:45.137 回答
3

终于找到自己了,分享给大家。适用于 TCP 和 unix 套接字。

ATMP="${HOME}/.tmp"     # alternative tmp directory, choose any directory you like
mkdir $ATMP
env TMPDIR=${ATMP} emacs --daemon=$SOCKETNAME   # start the daemon; SOCKETNAME can be anything
emacsclient -s ${ATMP}/$SOCKETNAME $OTHER_ARGS  # start the client
于 2014-05-12T17:14:21.667 回答