在后台运行 Linux 命令:与号 (&) 或屏幕

在后台运行 Linux 命令:与号 (&) 或屏幕

如果应用程序不时需要输入,则可以通过在应用程序末尾添加与号(“ &”)或通过屏幕(通过打开屏幕会话)来在后台运行应用程序。

除了上述好处(向应用程序添加输入)之外,还有其他好处吗?

我很好奇从低级细节角度来看是否还有其他好处 - 例如,我假设如果通过屏幕而不是在最后使用&运行,则内核关闭应用程序的变化会稍微小一些。

答案1

使用&将导致程序在后台运行并等待是否需要输入。这使得它只对不需要输入的程序有用。

如果您注销,程序也会终止,除非您使用nohup命令。这将捕获信号 1 (HangUP) 并将所有输出写入文件。

如果您确实需要立即提供输入,那么有三个选项:

  1. fg使用.
    或 fg手动将程序置于前台工作编号. (见jobs)。缺点:1)额外工作2)除非您 tail -f nohup.out,否则怎么知道它在等待输入?
  2. 使用屏幕。
  3. 使用 tmux。

答案2

如果您在屏幕上运行它,您可以关闭终端,但它仍在运行。

如果您通过“&”运行它,应用程序会收到 HUP 命令,如果您关闭当前终端,则会导致它退出。

您可以将其与 nohup 结合使用:

nohup /bin/mycommand &

以保持其运转。

相关内容