Ⅰ 伺服器部署nodejs的幾種方法
由於自身特性的原因。node程序必須保持開啟才能訪問網站,而當我們關閉時這些進程都會被停止。有以下3種方法可以避免這個問題。
screen
Screen,虛擬終端管理器。可以在後台管理終端界面,防止SSH斷開以後任務停止運行。
安裝方法:
sudo apt-get screen(以ubuntu為例)
使用方法:
使用screen -S [任意id]命令進入一個名為id的終端,此時便可以隨意執行操作
例如執行sudo apt-get upgrade,或者其它消耗時間比較長的工作,像編譯內核等等。
按ctrl+a後再按d保存虛擬終端,系統提示deatached即為保存成功
接下來可以斷開SSH終端,虛擬終端仍會執行。
訪問已經創建好的終端
screen -ls列出已經創建的正在後台運行的終端
screen -r xxx進入終端
例如 screen -r terminal1
徹底退出
screen -r進入終端後執行exit即可完全退出
PM2
pm2 是一個帶有負載均衡功能的Node應用的進程管理器.當你要把你的獨立代碼利用全部的伺服器上的所有CPU,並保證進程永遠都活著
安裝方法
npm install -g pm2
使用方法
啟動應用pm2 start -watch app.js
重啟應用pm2 restart app.js
顯示進程列表pm2 list
停止某應用pm2 stop app_name|app_id
停止所有應用pm2 stop all
小白方案
個人目前用的是寶塔linux面板,可以說是把Linux的各種操作都已比較簡單的形式展現出來了,不需要什麼Linux知識就能掌握寶塔官網了解一下
Ⅱ 如何 停止node進程
停止node進程方法:
events.js:85
throw er; // Unhandled 'error'芹灶 event
^
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1146:14)
at listen (net.js:1172:10)
at Server.listen (net.js:1257:5)
at Object.start (/枝孫wwwroot/www1/猛首鏈nodeJs/server.js:43:31)
at Object.<anonymous> (/wwwroot/www1/nodeJs/index.js:5:8)
at Mole._compile (mole.js:460:26)
at Object.Mole._extensions..js (mole.js:478:10)
at Mole.load (mole.js:355:32)
at Function.Mole._load (mole.js:310:12)
Ⅲ nodejs主進程退出後,子進程可以繼續執行嗎
從你的字面上來理解,是不可以的。主程序和子程序如果存在關聯,例如:主程序運行到某一階段時,運行子程序,那麼當主程序退出後,所有進程終止。
Ⅳ nodejs怎麼重啟線程
這里我只介紹一下linux的方法:
1、我們可以通過修改代碼裡面的監聽埠,然後重新運行。
這樣會導致一個問題是,伺服器的監聽埠越來越多,會給伺服器帶來些許的壓力,這種方法也是不可取的,沒運行一次監聽一個新埠,當然不是我們所希望的啦;
2、使用nodemon運行js
nodemon是一個nodejs的版本管理器,會自動在後台幫我們監控伺服器端的程序是否會發生變化。如變化,立即重啟伺服器(這個重啟會造成什麼樣的影響?)
用例:nodemon index.js;
安裝:npm install nodemon -g //install it
文檔地址:https://github.com/remy/nodemon
因為用npm安裝的,那麼 usr/bin/ 目錄下默認的是nodejs,所以需要先 ln -s /usr/bin/nodejs /usr/bin/node 創建alias
3、使用node-dev index.js
下載安裝,使用方法參考https://github.com/fgnass/node-dev
4、ctrl+c,在進程的shell中殺死進程埠
5、如果在3不小心使用ctrl+z後台運行,
可以用fg命令再調到前台繼續運行,也可以通過使用netstat -nap | grep node查看監聽的埠的進程id,然後使用kill -9 進程id 來手動殺死進程(限linux下使用);
Ⅳ node.js怎麼監聽程序強制退出
nodejs中可以通過監聽信號量的來監聽程序的退出
例如 SIGINT 監聽ctrl-D/Control-C退出程序
process.on('SIGINT', function() {
console.log('Got SIGINT. Press Control-D/Control-C to exit.');
});
Ⅵ nodejs cluster.fork怎麼關閉進程
cluster實質上是獨立的進程.進程是不能共享變數的.除非通過消息通訊.維護cluster共同的一個總連接數.但一個連接是不會被不同的cluster重用到的.
Ⅶ 如何讓nodejs在linux後台運行
加入 主文件是 index.js
那麼可以用的方法有:
用forever 進行管理專 npm install -g forever forever start index.js
用自帶的服屬務nohub nohupnodeindex.js> myLog.log 2>&1 &