我如何 "control" 和从 Raspberry Pi/Linux 的控制台分离 运行 程序?

How can I "control" and detach a running program from the console on a Raspberry Pi/Linux?

给定以下 C 程序:

int main() {
   do_something();

   if (console_command_m_got) {
      do_something_else_1();
   }
   if (console_command_q_got) {
      exit();
   }


   return 0;
}

当我在终端中启动 C 程序时,它 运行 就在那里。我正在寻找一种从终端启动程序但将其与该终端分离的方法。它不应该关闭,当我关闭控制台并在后台 运行 就像我将它放入自动启动时一样。

是否有可能通过在控制台中输入命令来更改 运行ning 程序的控制流程?我如何想象工作流程的一个小例子:

$ ./run_program         // Program starts and runs in background
$ ./run_program -m      // Modify the behaviour of the running program (if-statement above)
$ ./run_program -q      // Stop the running program

或者,我的方法完全错误。

你检查过screen了吗?它可以在分离模式下编写为 https://unix.stackexchange.com/a/162150 到 运行 的脚本,并在后台编写 运行 被调用的脚本(可能 运行 您的程序)。然后您可以使用 screen -ls 再次找到它并使用 screen -r name-of-screen.

重新连接到会话