2013-07-05 42 views
0

我知道這對大多數IT人羣來說似乎是一個非常愚蠢的問題,但我是設計這種架構的新手(僅在PHP開發之前)。爲什麼要創建一個守護進程而不是命令行工具?

我正在構建一個使用特定OS函數的應用程序。最終用戶將調用一個PHP腳本,該腳本又需要調用一個C程序。後者將調用OS API並以字符串形式返回結果,並將文件指針返回到PHP腳本。

現在,我知道我必須部署此C程序既可以作爲命令行工具或後臺程序的選項。爲什麼我應該選擇一個而不是另一個?

+0

下linux下或調度使用cron只是爲了確認,您的意思是返回從'C'到'PHP'文件指針? – VoidPointer

+0

是的,c程序將創建一個文件並將其路徑傳遞給PHP腳本。使用字指針實際上可能不合適。 –

回答

0

後臺程序是始終在後臺在內存中運行的過程。 Deamons用於
經常性任務執行,如監視進程或數據更改等。命令行工具是一個只在需要時才能執行的程序。所以我的解決辦法是使用CMD工具,因爲:

  1. 守護進程始終在內存中運行
  2. 如果守護進程崩潰誰負責重新啓動呢?
  3. 您必須實現同步請求控制

所以我opinioin是CMD工具。但是如果你想要某種類型的deamon行爲,還有其他選擇。如果您需要運行PHP腳本或CMD工具反覆窗口

+0

我對守護進程實現的擔憂恰恰與內存和資源消耗有關。據我所知,一個命令行工具應該簡單地釋放任何資源,因爲它結束執行,對吧?該網站將被有限的人訪問,所以不應該存在同時訪問問題。 –

+0

是的cmd工具執行後應該釋放內存 – freeland

0

後臺程序在計算機啓動時啓動的程序,並且繼續工作,直到計算機關機。例如,Apache Web服務器等服務器程序就是守護進程。

如果你只是想要一個能快速進行系統調用並返回結果的程序,那麼真的沒有理由將它作爲守護進程,除非它應該被用作一個服務器程序,其中有多個「客戶端」可以連接並請求這個系統調用。

+0

作爲一個網站,會有多個客戶端請求,但有限,因爲目標用戶基礎比較狹窄。併發問題的可能性幾乎沒有。 –

0

守護進程通常是一個後臺進程,所以如果你想你的程序在後臺坐和監控的東西(例如報告日誌文件大小的增加,每5分鐘的最後一小時),然後當用戶觀看網絡報告結果頁面,deamon是正確的選擇。

如果你不是想要做的東西,可以立即進行(例如報告當前日誌文件的大小),一個命令行工具更易於創建和維護。

+0

謝謝,這正是我的項目範圍。 –

0

備註:您也可以編寫一個php C++擴展來調用操作系統特定的函數。

的工具做動作X.(例如,轉換文件),如果它的快速和快速的,應該沒有必要寫一個守護進程。當您需要同步寫入/讀取或排隊時,守護進程通常會發揮作用。

一個簡單而通俗的方式來寫時下守護程序包的命令行命令時的NodeJS,例如參見這裏:http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever

+0

我想盡可能保持模塊化結構。第一個實現是在PHP中實現的,但我們可能想在將來使用其他框架調用該程序。感謝您的建議,但! –

相關問題