2021-05-12 14:32:11
4個Linux中Node.js應用程式的進程管理器
Node.js進程管理器是一個有用的工具,可以確保Node.js進程或指令碼連續(永久)執行,並使其能夠在系統引導時自動啟動。
它允許您監視正在執行的服務,它有助於執行常見的系統管理任務(例如重新啟動失敗,停止,重新載入設定而無需停機,修改環境變數/設定,顯示效能指標等等)。 它還支援應用程式紀錄檔記錄,群集和負載平衡,以及許多其他有用的流程管理功能。
另請參閱:2019年為開發人員提供的14個最佳NodeJS框架
包管理器尤其適用於在生產環境中部署Node.js應用程式。 在本文中,我們將回顧Linux系統中Node.js應用程式管理的四個進程管理器。
1. PM2
PM2是一個開源,高階,功能豐富,跨平台和最流行的Node.js生產級流程管理器,內建負載均衡器。它允許您列出,監視和處理所有已啟動的Nodejs進程,並支援群集模式。
安裝PM2以在Linux中執行Nodejs應用程式
它支援應用程式監視:提供一種監視應用程式資源(記憶體和CPU)使用情況的簡單方法。它支援您的流程管理工作流,允許您通過流程檔案設定和調整每個應用程式的行為(支援的格式包括Javascript,JSON和YAML)。
應用程式紀錄檔始終是生產環境中的關鍵,在這方面,PM2允許您輕鬆管理應用程式的紀錄檔。它提供了分別處理和顯示紀錄檔的不同方式和格式。您可以實時顯示紀錄檔,重新整理紀錄檔,並在需要時重新載入紀錄檔。
重要的是,PM2支援啟動指令碼,您可以將其設定為在預期或意外的計算機重新啟動時自動啟動進程。它還支援在當前目錄或其子目錄中修改檔案時自動重新啟動應用程式。
此外,PM2還帶有一個模組系統,允許使用者為Nodejs進程管理建立自定義模組。例如,您可以為紀錄檔輪換模組或負載平衡建立模組等等。
最後但同樣重要的是,如果您使用Docker容器,PM2允許容器整合,並提供允許您以程式設計方式使用它的API系統。
2. StrongLoop PM
StrongLoop PM也是一個開源的高階生產過程管理器,用於Node.js應用程式,內建負載平衡,就像PM2一樣,它可以通過命令列或圖形介面使用。
用於Nodejs的StrongLoop PM進程管理器
它支援應用程式監視(檢視效能指標,如事件迴圈時間、CPU和記憶體消耗)、多主機部署、叢集模式、零停機應用程式重新啟動和升級、故障時自動進程重新啟動以及紀錄檔聚合和管理。
此外,它附帶Docker支援,允許您將效能指標匯出到與狀態相容的伺服器,並在第三方控制台(如DataDog、石墨、Splunk以及Syslog和原始紀錄檔檔案)中檢視。
3. Forever
Forever是一個開源,簡單且可設定的命令列介面工具,可以連續(Forever)執行給定的指令碼。它適用於執行Node.js應用程式和指令碼的較小部署。您可以通過兩種方式永久使用:通過命令列或將其嵌入程式碼中。
Forever執行指令碼
它允許您管理(啟動,列出,停止,停止所有,重新啟動,重新啟動所有等等。)Node.js進程,它支援監視檔案更改,偵錯模式,應用程式紀錄檔,終止進程和退出信號自定義等等。此外,它還支援多種使用選項,您可以直接從命令列傳遞或將它們傳遞到JSON檔案中。
4. Systemd - 服務和系統管理器
在Linux中,Systemd是一個守護程式,用於管理系統資源,例如進程和檔案系統的其他元件。 systemd管理的任何資源都稱為一個單元。有不同型別的單元,包括服務,裝置,插座,安裝,目標和許多其他單元。
Systemd通過稱為單元檔案的組態檔管理單元。因此,為了像任何其他系統服務一樣管理Node.js伺服器,您需要為它建立一個單元檔案,在這種情況下它將是一個服務檔案。
為Node.js伺服器建立服務檔案後,可以啟動它,啟用它以在系統引導時自動啟動,檢查其狀態,重新啟動(停止並再次啟動它)或重新載入其設定,甚至像任何其他系統服務一樣停止它。
摘要
Node.js包管理器是在生產環境中部署專案的有用工具。它使應用程式永遠存在,並簡化了如何控制它。在本文中,我們回顧了Node.js的四個包管理器。如果您有任何疑問或問題,請使用下面的反饋表與我們聯絡。
相關文章