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

Bog*_*oiu 6 linux gnu-screen

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

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

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

Hen*_*nes 9

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

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

如果您确实需要不时提供输入,则有以下三个选项:

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


Ale*_*lex 6

如果您在屏幕中运行它,您可以关闭终端并且它仍在运行。

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

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

nohup /bin/mycommand &
Run Code Online (Sandbox Code Playgroud)

以保持运行。