cluster模組設定子程序的stdio

2022-02-11 09:39:02 字數 1116 閱讀 6674

子程序的stdout及stderr需要被設定為某個檔案,根據文件 setupmaster 說明,需要設定stdio陣列:

c.setupmaster(/c.js`,

stdio: [0, 1, 2, 'ipc']

})

其中,stdio中的項可以為陣列。

master.js

let c = require('cluster');

let fs = require('fs');

let path = require('path');

let cwd = process.cwd();

let o = fs.createwritestream(path.join(cwd, 'out.log'));

c.setupmaster(/c.js`,

stdio: [0, o, o, 'ipc']

})

c.fork();

c.js

console.log(13324)

console.error('error')

如果直接這樣使用,則會拋錯

throw new errors.typeerror('err_invalid_opt_value', 'stdio',

^typeerror [err_invalid_opt_value]: the value "writestream"

原因是stdio中的stream物件還未準備好,因此需要提前建立流。

如下:

let c = require('cluster');

let fs = require('fs');

let path = require('path');

let cwd = process.cwd();

let o = fs.createwritestream(path.join(cwd, 'out.log'));

settimeout(() => /c.js`,

stdio: [0, o, o, 'ipc']

})c.fork();

},10)

subprocess 子程序模組

subprocess子程序模組 import subprocess popen方法是用來執行系統命令的,直接把結果列印到終端了 res subprocess.popen r dir shell true,r dsfsdfr shell true,stdin 標準輸入 不常用 stdout subpr...

PHP FPM子程序數量設定

1 php fpm優化引數介紹 他們分別是 pm pm.max children pm.start servers pm.min spare servers pm.max spare servers。pm 表示使用那種方式,有兩個值可以選擇,就是static 靜態 或者dynamic 動態 在更老一...

PHP FPM子程序數量應該如何設定?

首先,我們關注下 php fpm 的執行方式 static 表示在 php fpm 執行時直接 fork 出 pm.max chindren 個子程序,dynamic 表示,執行時 fork 出 start servers 個程序,隨著負載的情況,動態的調整,最多不超過 max children 個...