roc*_*ady 0 linux bash upstart nohup systemd
我将这个问题放在stackoverflow上,因为我已经在这里找到了很多有关该主题的问题。
简短介绍
简单地说,nohup
可用于在后台运行应用程序,并在用户注销或关闭终端或ssh会话后保持其运行,例如
这里有很多关于stackoverflow的示例问题,例如this或that。
我的问题很简单。
为什么选择了nohup
,当有类似的选项upstart
,systemd
......其管理的应用作为服务于更方便的方式(运行级别,...)?
阅读有关相似主题的许多问题,唯一的选择似乎是nohup
。几乎从来没有答案是这样的:“ ...使用暴发户脚本,因此一切都由您完成...”
我主要使用eg upstart
,除了可能用于快速而肮脏的测试场景。
我缺少重要的东西吗?
nohup
快速,简便,不需要root用户访问权限,也不需要在系统中进行永久更改。这就是为什么许多人使用(或尝试使用)而不是配置服务的原因。
尽管有许多不合传统服务模型的合法用例,但在没有任何监督的情况下在后台运行事物通常是一个坏主意。例如:
一些实际的示例(使用类似的示例,nohup
并且将很难实现为系统服务):
git
有时会git gc
在后台运行以优化存储库而不会阻止用户工作adb
将在后台启动其服务并保持其运行,直到用户要求终止该服务为止