我在远程服务器上使用emacs.由于我的会话通常涉及数十个文件和进程,我一直在使用emacs服务器并使用emacs客户端连接到它.这样做的好处是,如果我的ssh连接由于某种原因而中断(这种情况很常见,因为我在英格兰和服务器在加利福尼亚),我只是再次连接到emacs服务器并继续工作,就像什么也没发生一样.
但是,前段时间,服务器的管理员已更改其配置,以便定期从/ tmp目录中清除"未使用的"文件,这是默认情况下emacs套接字的位置.由于时间戳在初始创建后没有得到更新,因此清除过程假定它是一个未使用的文件,这意味着我无法连接到我的服务器,尽管它正在运行.
有人知道告诉emacs在默认目录以外的目录中创建套接字的方法吗?
顺便说一下,我也尝试使用一个定期更新套接字时间戳的脚本,但它仍然被删除.
提前致谢.
我遇到了一个问题,如果我在远程系统上以守护进程模式启动 Emacs,然后在我的本地系统中运行ssh remotehost emacsclient -c,它会失败,并且由于身份验证错误而导致 X11 连接被拒绝。 然而,诸如此类的事情ssh remotehost xterm工作正常,所以它与 ssh 连接、X 转发等无关。
有问题的两个系统都运行 Ubuntu 18.04 LTS。
可以猜到,问题是 xauth,特别是在阅读了 2010/2011 年提交的问题后,这似乎是由于 GDM 将环境XAUTHORITY变量设置为$XDG_RUNTIME_DIR/gdm/Xauthority(类似于/run/user/1000/gdm/Xauthority)的方式,而传入的 SSH 连接则不然XAUTHORITY在为 SSH 会话设置 xauth cookies 之前设置。
这意味着 ssh xauth cookie 将添加到默认$HOME/.Xauthority文件中。我的 Emacs 守护进程无法看到这些 cookie,因为它正在使用 GDM$XDG_RUNTIME_DIR/gdm/Xauthority文件。
正如我所说,这种差异似乎已经是一个已知问题 8 年多了……没有人解决它吗?疯狂的。我已经编写了一个安装 cookie 的脚本,但必须这样做是相当恶心的。
有没有办法让我的 ssh 会话使用 GDM Xauthority 文件?我已经尝试XAUTHORITY在 shell 设置中进行设置,但显然设置得太晚了,在 SSH 守护程序配置新的 Xauth cookie 之后,因为它仍然放入$HOME/.Xauthority.
当在带有客户端的守护进程中运行 emacs 并点击 Cx k 时,它显示:Emacs 缓冲区仍然有客户端。你确定你要退出吗?
但是当使用Cx#时,它立即退出。
我不明白其中的区别。如果 Cx k 在客户端中,为什么它一开始就不表现正常?
我发现这个片段应该使 Cx k 行为正常,但我不明白其中的区别。
此外,当 emacs 客户端启动时,它会从先前的缓冲区开始几秒钟,然后打开新的缓冲区。emacs 服务器的目的不就是加快初始启动时间吗?为什么会这样做/我该如何修复它?初始加载时,它会从头开始几秒钟。