如果应用程序不时需要输入,则可以通过在应用程序末尾添加与号(“ &”)或通过屏幕(通过打开屏幕会话)来在后台运行应用程序。
除了上述好处(向应用程序添加输入)之外,还有其他好处吗?
我很好奇从低级细节角度来看是否还有其他好处 - 例如,我假设如果通过屏幕而不是在最后使用&运行,则内核关闭应用程序的变化会稍微小一些。
答案1
使用&
将导致程序在后台运行并等待是否需要输入。这使得它只对不需要输入的程序有用。
如果您注销,程序也会终止,除非您使用nohup
命令。这将捕获信号 1 (HangUP) 并将所有输出写入文件。
如果您确实需要立即提供输入,那么有三个选项:
fg
使用.
或 fg手动将程序置于前台工作编号. (见jobs
)。缺点:1)额外工作2)除非您 tail -f nohup.out,否则怎么知道它在等待输入?- 使用屏幕。
- 使用 tmux。
答案2
如果您在屏幕上运行它,您可以关闭终端,但它仍在运行。
如果您通过“&”运行它,应用程序会收到 HUP 命令,如果您关闭当前终端,则会导致它退出。
您可以将其与 nohup 结合使用:
nohup /bin/mycommand &
以保持其运转。