gpt4 book ai didi

linux - 当应用程序可以作为系统服务运行时,为什么要使用 nohup?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:52 26 4
gpt4 key购买 nike

我把这个问题放在了 stackoverflow 上,因为我已经在这里找到了很多关于这个主题的问题。

简介

简单地说,nohup 可用于在后台运行应用程序,并在用户注销或终端或 ssh session 关闭后保持应用程序运行,例如

stackoverflow 上有很多示例问题,比如 thisthat .

我的问题很简单。

为什么选择 nohup,因为有 upstartsystemd 等选项,它们可以将应用程序作为服务进行管理更方便的方式(运行级别,...)?

阅读了很多关于类似主题的问题,唯一的选择似乎是nohup。几乎从来没有答案是这样的:“......使用 Upstart 脚本,所以一切都为你处理......”


我主要会选择例如upstart,除了可能用于快速而肮脏的测试场景。

我是不是漏掉了什么重要的东西?

最佳答案

nohup 快速、简单,不需要 root 访问权限,也不会在系统中进行永久更改。这就是为什么许多人使用它(或尝试使用它)而不是配置服务的原因。

尽管有许多不适合传统服务模型的合法用例,但在没有任何监督的情况下在后台运行通常不是一个好主意。例如:

  1. 可能只有在某些用户操作之后才需要后台进程。
  2. 可能需要不止一个实例。例如:每个用户一个或每个 session 一个。
  3. 进程可能不需要一直运行。它只是在完成工作后退出。

一些现实世界的例子(使用类似 nohup 的东西并且很难作为系统服务实现):

  1. git 有时会在后台运行 git gc 以在不阻塞用户工作的情况下优化存储库
  2. adb 将在后台启动其服务并保持运行直到用户要求终止它
  3. 一些编译器可以选择在后台继续运行以减少后续调用的启动时间

关于linux - 当应用程序可以作为系统服务运行时,为什么要使用 nohup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42327173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com