2014-02-27 2 views
5

원격 서버에서 이맥스를 사용합니다. 내 세션은 대개 수십 개의 파일과 프로세스를 필요로하기 때문에 emacs 서버를 사용하여 이맥스 클라이언트와 연결했습니다. 그 이유는 무엇이든지간에 ssh 접속이 중단된다면 (나는 영국과 캘리포니아에있는 서버 때문에 매우 자주 일어난다), 나는 단순히 emacs 서버에 다시 연결하고 아무 일도 일어나지 않은 것처럼 계속 작업 할 수 있다는 장점이있다.이맥스 소켓의 위치

그러나 서버의 관리자는 "사용되지 않는"파일이/tmp 디렉토리에서 정기적으로 제거되도록 구성을 변경했습니다.이 파일은 기본적으로 이맥스 소켓이있는 곳입니다. 타임 스탬프는 처음 생성 된 후에 업데이트되지 않기 때문에 제거 프로세스에서는 사용하지 않는 파일이라고 가정하므로 실행 중이더라도 서버에 더 이상 연결할 수 없습니다.

누군가가 이맥스에게 기본 디렉토리가 아닌 다른 디렉토리에 소켓을 생성하는 방법을 알고 있습니까?

나는 소켓의 타임 스탬프를 정기적으로 갱신하는 스크립트를 사용해 보았지만 아직 삭제 중이다.

미리 감사드립니다.

+0

스크립트가 작동하지 않습니다. mtime 또는 ctime 또는 둘 다를 수정합니까? –

답변

4

server-socket-dirserver-auth-dir 당신이 찾고있는 변수는 문서 C-HVserver-socket-dirRET

서버 소켓을 배치 할 디렉토리에서 것 같다. 로컬 소켓 이 지원되지 않으면이 값은 nil입니다.

C-HVserver-auth-dirRET 서버 인증 파일에 대한

디렉토리. server-use-tcp' is non-nil. Otherwise we use server-socket-dir '인 경우에만 사용합니다.

+0

이 솔루션은 유닉스 소켓이 아닌 TCP 소켓에서만 작동하는 것처럼 보입니다. –

1

나는 마침내 자신을 발견하여 모든 사람과 공유했습니다. TCP 및 유닉스 소켓에서 작동합니다.

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