我正在开发一个嵌入式项目,我需要一个没有外部依赖项的程序,如 screen 或 tmux。这两个程序不好,因为它们需要其他库。
由于我只需要分离一个程序,能够在我再次登录时注销并恢复它,我想知道我是否可以为此编写一个小程序。
您知道我需要执行哪些调用(在 C 中)来分离程序并将其恢复吗?
我正在开发一个嵌入式项目,我需要一个没有外部依赖项的程序,如 screen 或 tmux。这两个程序不好,因为它们需要其他库。
由于我只需要分离一个程序,能够在我再次登录时注销并恢复它,我想知道我是否可以为此编写一个小程序。
您知道我需要执行哪些调用(在 C 中)来分离程序并将其恢复吗?
如果我正确理解您的要求,理论上您可以使用 termios struct 和 ioctl 来实现这一点。
ioctl(0, TIOCNOTTY, NULL);
分离和
ioctl(0, TIOCSCTTY, 1);
连接回终端。但是,它实际上并没有执行这项工作。
以下解决方案描述了一个不太好的但实用的解决方法
主要目的是将程序附加到另一个终端,但我相信这也是您实现目标的方式。
关于您提到的嵌入式平台,您也许可以从busybox中找到一些帮助
它使用非常小的二进制文件为嵌入式 linux 编译,并包含大多数常用的 linux 实用程序,例如 getty、stty 等。