标签: background

如果我启动一个后台进程然后注销,它会继续运行吗?

在与同事长时间讨论后提出这个问题,我真的很想在这里澄清一下。

我启动了一个后台进程,通过将“ &”附加到命令行或通过CTRL-Z使用“ bg”停止并在后台恢复它。然后我退出。

发生什么了?

我们很确定它应该被 SIGHUP 杀死,但这并没有发生;再次登录后,该进程愉快地运行并pstree显示它已被“采用”init.

这是预期的行为吗?

但是,如果是,那么nohup命令的目的是什么?看起来这个过程无论如何都不会被杀死,不管有没有它......


编辑 1

更多细节:

  • 该命令是从 SSH 会话启动的,而不是从物理控制台启动的。
  • 该命令是在没有 nohup和/或的情况下启动的&;然后它被暂停CTRL-Z并在后台恢复bg
  • ssh 会话没有下降。有一个实际的注销 ("exit ”命令)。
  • 这个过程是一个 scp文件复制操作。
  • 再次登录后,pstree显示进程正在运行并且是init.

编辑 2

更清楚地说明问题:是否将进程置于后台(使用&bg)使其 ignore SIGHUP,就像nohup命令一样?


编辑 3

我尝试手动发送一个SIGHUPto scp: 它退出了,所以它绝对不会忽略信号。

然后我再次尝试启动它,将它放在后台并注销:它被“采用”init并继续运行,当我重新登录时我在那里找到了它。

我现在很困惑。看起来SIGHUP在注销时根本没有发送。

linux bash process background

32
推荐指数
2
解决办法
5万
查看次数

在后台运行远程 ssh 命令但仍显示的最佳方法是什么?

我需要远程运行 SSH 命令,并在本地显示输出。但是如果连接中断,我希望命令仍然运行。

我不是在谈论登录和执行,而是在做 ssh user@remotehost 'commands && command etc'

即使连接中断,我如何确保命令运行?

ssh remote background

15
推荐指数
3
解决办法
5947
查看次数

在后台启动 Sinatra 应用程序,并将 stdout 和 stderr 重定向(附加)到文件

我有一个 Sinatra 应用程序,我使用ruby app.rb. 通过 ssh 在远程机器上部署它时,如何在后台运行它并将 stdout 和 stderr 重定向到日志文件?

在重新启动时,我想保留以前的日志,以便将较新的消息附加到现有的日志文件中,而不是截断它。

将我的 Web 应用程序作为守护程序运行的推荐方式是什么?

我试过了nohup ruby app.rb &,但似乎缺少 stderr 并且在某些情况下日志语句似乎乱序。

daemon background background-process stderr sinatra

7
推荐指数
1
解决办法
7391
查看次数

将工作放入 bg 并运行它?

我知道有两种或多种方法可以运行作业并将其置于后台。

现在我使用 ctrl-z 在后台进行 scp 传输,因为我注意到这需要一段时间。如何在后台运行该进程,以便在等待完成时编写其他命令?

注意:我可以创建一个新终端,但是在这种情况下,我通过 SSH 连接到 2 个不同的服务器,因此在后台为我想要的每个并发作业执行此操作很不方便。

linux terminal process background

2
推荐指数
2
解决办法
1172
查看次数

你怎么能看到你放在后台的进程?

这个问题是基于这个线程

你怎么能看到你放在后台的进程?

linux unix shell background

1
推荐指数
1
解决办法
252
查看次数

我的开发人员是否试图挤奶以获取更多现金?(cron 作业和虚拟主机)

我已经为我从 Hostgator 开发的网站购买了托管服务。但是,开发人员说他为我开发的站点无法托管在那里,因为他需要能够在后台运行 cron 作业,并希望我在他的服务器上托管(这要贵得多)。我知道通过我的托管,我可以通过 cpanel 设置 cron 作业。这些作业不是在后台运行吗?我真的需要更换主机还是这个开发人员只是想给我挤更多的钱?有人可以告诉我我的开发人员在说什么吗?

web-hosting cron background

1
推荐指数
1
解决办法
284
查看次数