emacs套接字的位置

时间:2014-02-27 14:13:15

标签: linux sockets emacs emacs-server

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

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:4)

似乎server-socket-dirserver-auth-dir是您要查找的变量,来自文档 Ch v server-socket-dir < KBD> RET

  

放置服务器套接字的目录。如果是本地套接字   不支持,这是零。

C-H v server-auth-dir RET

  

服务器身份验证文件的目录。我们只使用这个   server-use-tcp' is non-nil. Otherwise we use服务器套接字-DIR”。

答案 1 :(得分:1)

我终于找到了自己,所以与大家分享。适用于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