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)))


戻る
ancient@s6.xrea.com