2014-02-27 32 views
5

我使用遠程服務器上的Emacs。由於我的會話通常涉及數十個文件和進程,因此我一直使用emacs服務器並通過emacs客戶端連接到它。這有一個,如果我的SSH連接中斷,無論出於何種原因(發生非常頻繁,因爲我在英格蘭和服務器在加州),我只是重新連接到服務器的Emacs,並繼續像什麼工作已經發生了優勢。位置emacs的插座

然而,前一段時間,服務器的管理員已經改變了它的配置,使「未使用」文件會定期從/ tmp目錄,這是在Emacs的插座是默認清除。由於時間戳在初始創建後沒有更新,因此清除過程假定它是未使用的文件,這意味着雖然它正在運行,但無法再連接到我的服務器。

是否有人知道的方式來告訴emacs的創造不是默認的目錄插座?

順便說一句,我也用,定期更新套接字的時間戳的腳本試過了,但它仍然被刪除。

在此先感謝。

+0

有趣的是,你的腳本不工作。它是修改mtime,還是ctime或兩者? –

回答

4

似乎server-socket-dirserver-auth-dir是你正在尋找的變量,從文檔C-Hvserver-socket-dirRET

在其中放置服務器套接字的目錄。如果不支持本地套接字 ,則爲零。

C-Hvserver-auth-dirRET

目錄服務器的認證文件。我們只使用這個如果 server-use-tcp' is non-nil. Otherwise we use服務器套接字目錄'。

+0

此解決方案似乎只適用於TCP套接字,不適用於unix套接字。 –

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