我在远程服务器上使用emacs。由于我的会话通常涉及数十个文件和进程,我一直在使用emacs服务器并使用emacs客户端连接到它。这样做的好处是,如果我的ssh连接由于某种原因而中断(这种情况很常见,因为我在英格兰和服务器位于加利福尼亚),我只是再次连接到emacs服务器并继续工作,就像没有发生任何事情一样。 / p>
但是,前段时间,服务器的管理员已更改其配置,以便定期从/ tmp目录中清除“未使用的”文件,这是默认情况下emacs套接字的位置。由于时间戳在初始创建后没有得到更新,因此清除过程假定它是一个未使用的文件,这意味着我无法连接到我的服务器,尽管它正在运行。
有人知道告诉emacs在默认目录以外的目录中创建套接字的方法吗?
顺便说一句,我也尝试过使用一个定期更新套接字时间戳的脚本,但它仍然被删除。
提前致谢。
答案 0 :(得分:4)
似乎server-socket-dir
和server-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