用nssm將nodejs程式包成服務

用nssm將nodejs程式包成服務

更新於 發佈於 閱讀時間約 2 分鐘

準備專案

這邊首先準備一個新的專案,可以參考react官網,完成後參考README.md輸入npm run dev就可以啟動並在瀏覽器看到畫面

raw-image

準備nssm工具

在google上搜nssm,第一個項目點進去後,找到並下載穩定版,附上下載鏈接

raw-image

壓縮檔下載完畢後,解壓縮到喜歡的地方,然後進入資料夾,再進入win64資料夾,會看到nssm.exe

raw-image

將nodejs程式變成服務

我們要開啟一個有系統管理員身份的cmd來執行它,可以再window任務欄搜cmd,然後點擊以系統管理員身份執行

raw-image

cd指令將cmd目錄切換到這個資料夾後,輸入以下指令,會跳出一個nssm窗口

nssm install yourServiceName​
raw-image

path的這邊,如果我們啟動專案時,最前面的指令是npm就選npm.cmd,如果是node就選node.exe,這些文件一般會在C:\Program Files\nodejs底下。這邊由於我啟動專案用的是npm run dev,我就選npm.cmd。

startup directory我們的專案根目錄

arguments輸入指令後半段,我的指令npm run dev的後半段是run dev

最後點擊install service最主要的設定就完成了

還可以在追加一些小設定(想編輯可以打nssm edit yourServiceName​):

  1. Details->startup改成manual(不會開機就啟動)
  2. Exit actions->action to take when application exits改成stop service(不會失敗後一直重啟服務)
  3. I/O->output 自己建立一個log檔案並選取(可以查看錯誤訊息)

啟動服務

任務欄搜索ser打開服務app,找到剛剛建立的服務,再點擊啟動,我們的專案就在服務中運行起來了

raw-image
raw-image

啟動後左邊的按鈕就會變成停止、暫停和重啟,可以點擊停止來停止服務。


avatar-img
s_SoNg的沙龍
4會員
11內容數
留言
avatar-img
留言分享你的想法!
s_SoNg的沙龍 的其他內容
在工作上遇到nodejs呼叫執行檔執行失敗問題,最後發現是由於nodejs專案本身有用nssm包成服務,在服務環境的nodejs呼叫的執行檔也執行在服務中,造成程式不會跳出視窗而導致失敗。
如果有個算法是2秒以上很耗時的長任務,希望在執行長任務前後修改state渲染loading畫面,可能會難以達到預期效果,會看到loading畫面一閃而過。 把setState改非同步的方法...
4/5React await setStat
利用shapecast函式參與過濾的過程
在工作上遇到nodejs呼叫執行檔執行失敗問題,最後發現是由於nodejs專案本身有用nssm包成服務,在服務環境的nodejs呼叫的執行檔也執行在服務中,造成程式不會跳出視窗而導致失敗。
如果有個算法是2秒以上很耗時的長任務,希望在執行長任務前後修改state渲染loading畫面,可能會難以達到預期效果,會看到loading畫面一閃而過。 把setState改非同步的方法...
4/5React await setStat
利用shapecast函式參與過濾的過程