-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdaemon.js
More file actions
82 lines (72 loc) · 1.96 KB
/
daemon.js
File metadata and controls
82 lines (72 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
var os = require('os');
var child_process = require('child_process');
function getProcessInfo(){
const memUsage = process.memoryUsage();//内存使用
const cpuUsage = process.cpuUsage();//cpu使用
const cfg = process.config;//编译node.js的配置信息
const env = process.env;//用户环境
const pwd = process.cwd();//工作目录
const execPath = process.execPath;//node.exe目录
const pf = process.platform;//运行nodejs的操作系统平台
const release = process.release;//nodejs发行版本
const pid = process.pid;//nodejs进程号
const arch = process.arch;//运行nodejs的操作系统架构
const uptime = process.uptime();//nodejs进程运行时间
return {
memUsage,cpuUsage,cfg,env,pwd,execPath,pf,release,pid,arch,uptime
}
}
var portcount = process.argv.slice(2)[0] || 3001;
var devportcount = process.argv.slice(2)[1] || 9230;
var processList = [];
processList.push({
port:portcount,
devport:devportcount,
file:"server/index.js",
workerHandle:null,
model:"cellmaster",
clients:0
});
portcount++;
devportcount++;
processList.push(
{
port:portcount,
devport:devportcount,
file:"proxy/proxy.js",
workerHandle:null,
model:"pipe"
}
);
portcount++;
devportcount++;
console.log("this machine has ",os.cpus().length," processor")
function spawn(point) {
processList[point].workerHandle = child_process.spawn(
'node',
[
"--inspect="+processList[point].devport,
processList[point].file,
processList[point].port
]
)
console.log(processList[point].file,
"on port",
processList[point].port,
"dev port ",
processList[point].devport)
processList[point].workerHandle.stdout.on('data', (data) => {
console.log(new Buffer(data).toString('utf-8'));
});
processList[point].workerHandle.stderr.on('data', (data) => {
console.log(new Buffer(data).toString('utf-8'));
});
processList[point].workerHandle.on('exit', function (code) {
if (code !== 0) {
spawn(point);
}
});
}
for (point in processList){
spawn(point);
}