2017-02-19 62 views
0

我把這個問題放在了stackoverflow上,因爲我已經在這裏發現了很多問題。爲什麼在應用程序可以作爲系統服務運行時使用nohup?

簡短介紹

簡而言之,nohup可以用來在後臺運行的應用程序,並讓他們在用戶註銷或終端或ssh會話例如關閉後運行

這裏有很多關於計算器的例子quesitons,比如thisthat

我的問題很簡單。

爲什麼選擇nohup,當有喜歡upstartsystemd,其管理的應用作爲服務於更方便的方式選擇......(運行級別,...)?

閱讀有關類似主題的許多問題,唯一的選擇似乎是nohup。幾乎從來沒有答案是這樣的:「......用Upstart腳本,所以它是爲大家處理......」


我主要去如upstart,除了一個快速和骯髒的測試場景。

我錯過了一些重要的東西嗎?

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈有關Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww

+0

我提到了我的意圖,但你說得對,當然..我會研究那個和如果可能,移動它。謝謝。 – rocksteady

回答

4

nohup是快速,簡單,不需要root訪問權限和不會對系統進行永久更改。這就是爲什麼許多人使用它(或嘗試使用它)而不是配置服務。

在沒有任何監督的情況下在後臺運行的東西通常是一個壞主意,雖然有很多合法的用例不適合傳統的服務模型。例如:

  1. 只有在某些用戶操作後才需要後臺進程。
  2. 可能需要多個實例。例如:每個用戶一個或每個會話一個。
  3. 進程可能不需要一直運行。它在完成工作後就退出了。

一些真實世界的例子(其中使用類似nohup和將很難實施,因爲系統服務):

  1. git有時會在後臺運行git gc而不阻塞用戶的工作,以優化資源庫
  2. adb將在後臺啓動其服務並保持運行,直到用戶要求終止它爲止
  3. 某些編譯器可以選擇在後臺繼續運行以減少啓動後續調用的次數
相關問題