⑴ 如何 停止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])