detachtty
例えば、 ある Lisp で Aserve を走らせてあるとします。
いったんログアウト後、
その Aserve が走っている Lisp のプロセスに接続したいとき、
どうすればいいでしょう?
detachtty を使えば可能になります。
リモートマシンへの接続も ssh 経由で安全に行うことができます。
detachtty の使い方
サーバ側で次のコマンドを実行します。
detachtty --dribble-file /tmp/lisp.dribble \
--log-file /tmp/lisp.log --pid-file /tmp/lisp.pid \
/tmp/lisp.socket /usr/bin/lisp
クライアント側から次のようなコマンドを実行します。
attachtty loginname@host.domain.co.jp:/tmp/lisp.socket
ローカルの接続のときは、こうなります。
attachtty /tmp/lisp.socket
ilisp からの使用
~/.emacs に次のようなコードを書いておきます。
(autoload 'lisp-remote "ilisp"
"Inferior CMU Common LISP which is running at remote server." t)
(add-hook
'ilisp-load-hook
'(lambda ()
(defdialect lisp-remote "CMU Common Lisp -- Remote Server Process" %%cmulisp
(ilisp-load-init 'ilisp-package-kludge
"/usr/lib/common-lisp/cmucl-normal/ilisp/ilisp-pkg")
(ilisp-load-init 'common-lisp
"/usr/lib/common-lisp/cmucl-normal/ilisp/cl-ilisp")
(ilisp-load-init 'cmu
"/usr/lib/common-lisp/cmucl-normal/ilisp/cmulisp"))
(setq lisp-remote-program "loginname@host.domain.co.jp:/tmp/lisp.socket")))
;;attachttyの改行がCRLFになっているらしい
(add-to-list 'process-coding-system-alist
'("attachtty.*" . (euc-japan-dos . euc-japan-dos)))
戻る