【问题标题】:What's the difference between a foreground and background program?前台程序和后台程序有什么区别?
【发布时间】:2009-05-19 15:28:29
【问题描述】:

我尝试在后台模式和前台模式下运行程序。

在后台模式下,运行失败。

但是在前台模式下,它成功了。

那么可能导致此问题的后台模式和前台模式之间的区别是什么?

【问题讨论】:

  • 您应该比“失败”更具体,后者非常模糊。通常,需要 STDIN 的进程只会被“停止”(发送 SIGSTOP)并坐在那里等待您“fg”它以便它可以继续。我不会称其为“失败”,但如果您的流程执行其他操作,您应该指定以便我们提供更多帮助。

标签: linux bash


【解决方案1】:

前台进程可以访问终端(标准输入和输出)。

您可以尝试通过在命令行中添加<> /dev/null 来解决此问题。这将告诉程序不要使用标准输入。一旦你不再给它们一个终端,一些程序就会考虑到这一点并“表现”。

另一种解决方案是nohup 程序,它的功能基本相同,但还有更多功能。

【讨论】:

    【解决方案2】:

    后台进程通常在很少或没有用户交互的情况下运行,而是与系统交互。前台进程是用户与之交互的内容。后台进程,除非明确运行,否则以非管理员权限运行。如果您在用户上下文中运行它,那么它可能有权执行应用程序所做的任何事情。

    【讨论】:

    • 可能需要更多信息。以下是在后台模式下运行的那些:root 30495 1 0 06:58 pts/0 00:00:02 php start.php bots/admin41.bot.php root 5025 29551 0 08:48 pts/0 00:00:00 php start.php 机器人/admin4.bot.php
    猜你喜欢
    • 2010-11-22
    • 2015-08-17
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2014-01-02
    • 2015-02-11
    • 2017-12-05
    相关资源
    最近更新 更多