【发布时间】:2017-11-13 21:07:15
【问题描述】:
我编写了一个程序,使用 cl-cffi-gtk 和 Common Lisp 生成一个简单的托盘图标,名为 tray-icon.lisp,该程序在名为 hourly-player。我现在的问题是,虽然这个应用程序可以从命令行很好地启动,但从脚本启动它却有点困难。 如果我尝试
sbcl --eval '(asdf:load-system "hourly-player")' --eval '(hourly-player:run)'
我的应用程序已正确加载到 SBCL REPL 中,并且托盘图标显示正确。但是,如果我添加 & 在后台启动我的脚本,它似乎会立即终止。
在我的 run 函数末尾添加一个 (loop) 可以防止脚本终止,但显然也占用了我的 CPU 比这样的应用程序所需的要多得多(根据 conky,与基本上相比,负载大约为 12%在 sbcl 中运行时什么都没有。
是否有一些规范的方法可以让我的脚本作为后台进程保持活跃?
我也知道还有其他执行 lisp 程序的方法,但它们要么共享相同的问题(例如核心转储),要么似乎破坏了我的系统定义依赖项(至少 buildapp 和 cl-launch 似乎这样做了)。
如果有帮助,可以在here找到我的项目。
【问题讨论】:
-
你好,让你知道我喜欢一篇解释 lispy Gtk 应用程序基本结构的小博文 :)(在 reddit 上发帖以获取 exple)
-
听起来很有趣,但我对 Gtk 还没有那么多经验,所以我不确定在这方面我是否可以提供任何帮助。据我所知,
cl-cffi-gtk我在这里用于我的项目似乎非常简单,因为我可以将我的应用程序与基本教程大纲和阅读一些文档拼凑在一起,至少在我遇到我在这里描述的问题。
标签: bash shell common-lisp gtk3 sbcl