我如何 "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
.
重新连接到会话
给定以下 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
.