Ⅰ 服务器部署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 &