-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdaemon.js
More file actions
80 lines (66 loc) · 1.91 KB
/
daemon.js
File metadata and controls
80 lines (66 loc) · 1.91 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
'use strict'
var os = require('os');
var child_process = require('child_process');
function getProcessInfo(){
const memUsage = process.memoryUsage();//memory
const cpuUsage = process.cpuUsage();//cpu
const cfg = process.config;//config
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] || 80;
var portsslcount = process.argv.slice(2)[1] || 443;
var portdevcount = process.argv.slice(2)[2] || 9230;
var processList = [];
processList.push({
port:portcount,
portssl:portsslcount,
portdev:portdevcount,
file:"app.js",
workerHandle:null,
model:"cellmaster",
clients:0
});
portcount++;
portsslcount++;
portdevcount++;
console.log("this machine has ",os.cpus().length," processor")
function spawn(point) {
processList[point].workerHandle = child_process.spawn(
'node',
[
"--inspect="+processList[point].portdev,
processList[point].file,
processList[point].port,
processList[point].portssl
]
)
console.log(processList[point].file,
"http on port",
processList[point].port,
"https on port",
processList[point].portssl,
"dev port ",
processList[point].portdev)
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);
}
});
}
spawn(0);