在 init 脚本内启动的进程上使用 ncurses 进行基本 GUI

在 init 脚本内启动的进程上使用 ncurses 进行基本 GUI

我有一个在嵌入式设置(buildroot)上运行的自定义编写的应用程序。我的应用程序必须在每次目标设备启动时运行,因此我编写了一个初始化脚本来执行此操作,并且运行良好。然而,部分应用程序有一个用 ncurses 编写的非常基本的“GUI”。我遇到的问题是,当我直接登录或通过 ssh 登录时它工作正常,但是当二进制文件通过 init 启动时,我无法访问 ncurses 代码的功能。我认为这是因为我登录的控制台与启动二进制文件的控制台不同。所以我的问题是应用程序/守护程序是否有关联的控制台,如果有,有什么方法可以将其转移到另一个控制台吗?

如果没有,我还有其他方法可以解决这个问题吗?我在想也许强制执行自动登录,然后通过登录控制台启动应用程序,以便当监视器连接到设备时至少可以访问 GUI。

或者,还有更好的方法?

答案1

我不太确定我是否理解了你的问题。我假设您的应用程序启动了某种curses GUI,并且您想要远程登录并以某种方式连接到该GUI(但应用程序已经在运行)。

我建议使用屏幕(http://www.gnu.org/software/screen/)在独立的“屏幕”(实际上是带有简单终端模拟器的伪 tty)上启动应用程序。然后登录后,您的用户可以使用“screen -D -r”或其变体附加到虚拟屏幕。

这就是你所说的“将其转移到另一个控制台”

PS:另一种“正确”实现这一点的方法可能是将服务(始终运行的部分)和 UI 分成两个独立的进程。不过,这可能太麻烦了,因为它需要在这两个进程之间发明某种 IPC。

相关内容