Soj*_*aki 10 executable sbcl common-lisp hunchentoot
我开始使用SBCL Common Lisp并希望使用Hunchentoot开发一个小型Web应用程序.为了便于部署,我计划使用sb-ext:save-lisp-and-die将所有内容保存在二进制文件中,因为我可以使用大输出大小.
对于可执行文件,您需要提供顶级功能.问题是当顶级函数返回时程序退出.我试图从可执行文件启动Hunchentoot,但程序在两秒后结束.
在停止程序之前,我怎么能等到Hunchentoot关闭(从请求内部)?我可以加入Hunchentoot接受器线程吗?或者我甚至可以将REPL包含在可执行文件中以便能够进行实时调试?
(ql:quickload :hunchentoot)
(use-package :hunchentoot)
(defun main ()
(hunchentoot:start-server :port 8082)
(sb-thread:join-thread (find-if
(lambda (th)
(string= (sb-thread:thread-name th) "hunchentoot-listener-1"))
(sb-thread:list-all-threads))))
Run Code Online (Sandbox Code Playgroud)
如果您保持终端打开(可能通过 GNU Screen),则不需要显式代码即可访问 REPL。将 Ctrl+C 发送到终端以中断调试器。