這是一篇介紹如何在Linux上管理Node進程並透過GitHub Webhooks自動重啟它們的技術文章。
pm2是一個非常有用的Linux進程管理工具。
我在幾個項目中使用過它,現在我想告訴你如何使用它!
特別是我將使用它在DigitalOcean VPS上運行一個Node.js應用程式,並設置當我們將應用程式的更新推送到GitHub存儲庫時,pm2將會被觸發,從GitHub更新應用程式並重啟它。
聽起來很酷吧?那我們開始吧!
首先,在DigitalOcean上註冊並按照我的教程创建一個VPS。
重要提示:在DigitalOcean上使用NodeJS映象,它已經設置了pm2和node,而且除了root用戶外還有一個nodejs用戶。
當你的VPS運行起來之後,我們可以開始了。
確保你使用nodejs用戶進行ssh登錄。當以root身份登录時,只需運行su nodejs以使用該用戶。
你在VPS上運行的示例Node.js應用程式位於/var/www/html/文件夾中,它由hello.js文件組成。
應用程式的部署/運行已經通過pm2程序進行管理,它是一個守護進程管理器。
你可以使用pm2 list命令來查看現在正在運行的所有應用程序:
如果你對應用程式做任何更改,這些更改將在重新啟動應用程式之前不會生效:
pm2 restart hello 你可以停止正在運行的應用程式:
pm2 stop hello 如果你嘗試重新加載頁面,這將在瀏覽器中產生一個錯誤:
你可以運行:
pm2 start hello 將應用程式重新啟動。
pm2的好處是,當系統重新啟動時,它會自動重新運行應用程序。
現在你已經看到了內置的Hello World的運行方式,讓我們部署另一個應用程式。
讓我們停止當前的示例應用程式:
pm2 stop hello 並在/var/www/html中創建一個名為test的文件夾:
mkdir test 進入該文件夾:
cd test 運行以下命令:
npm init -y 然後安裝Express:
npm install express 現在運行nano app.js並添加以下代碼:
const express = require("express") const app = express() app.get("/", (req, res) => res.send("Hello World!")) app.listen(3000, () => console....