⑴ 如何 停止node进程
当我们写了个Nodejs程序的时候,一般用nodeyourjsfile.js命令启动该程序。但是如果程序中有东西出错,这个进程就会退出。我们写程序不可能保证万无一失,肯定有些没有处理的错误,这就让很多人觉得NodeJS不稳定,容易产生很多故障。下面我就讲讲几种方法增加你的NodeJS程序的稳定性。1.使用try{}catch(error){}来执行容易出错的代码段。比如解析一个外来的json字符串等。2.使用process.on(‘uncaughtException’,function(err){});来处理未被捕捉的错误。3.试用奶妈进程来启动你的程序,检测子进程的退出,然后自动重启该进程。比如mother.js:start();functionstart(){console.log('Motherprocessisrunning.');varls=require('child_process').spawn('node',['yourjsfile.js']);ls.stdout.on('data',function(data){console.log(data.toString());});ls.stderr.on('data',function(data){console.log(data.toString());});ls.on('exit',function(code){console.log('childprocessexitedwithcode'+code);delete(ls);4.使用nohup让nodejs进程在后台运行。比如运行nohupnodeyourjsfile.js/dev/null&
⑵ nodejs主进程退出后,子进程可以继续执行吗
从你的字面上来理解,是不可以的。主程序和子程序如果存在关联,例如:主程序运行到某一阶段时,运行子程序,那么当主程序退出后,所有进程终止。
⑶ nodejs 主进程可以杀死指定子进程吗
我们知道nodejs是单线程的,若在一个线程中运行一个响应很长时间nodejs程序,那么其他的请求要等这个程序完成后在去执行,这样cpu利用率很低,若为每个请求单独一个进程处理,这样可以利用好服务器的资源。nodejs为我们提供了child_process与cluster模块为我们提供多进程的操作。其中child_process开启多个子进程,在各个子进程中运行nodejs命令,可执行文件、nodejs模块文件。cluster运行多个子进程,在每个子进程中运行nodejs应用程序的副本。
⑷ 如何 停止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是一种单线程模型,但是,使用nodejs的child_process模块可以实现多进程任务。利用child_process可以创建子进程,实现子进程和主进程之间的通信。
nodejs v0.12.7版本child_process提供以下同步和异步的方式创建进程:
异步创建:
child_process.spawn(command[, args][, options])
options.stdio
options.detached
options.customFds
child_process.exec(command[, options], callback)
child_process.execFile(file[, args][, options][callback])
child_process.fork(molePath[, args][, options])
同步创建:
child_process.spawnSync(command[, args][, options])
child_process.execFileSync(command[, args][, options])
child_process.execSync(command[, options])