使用node创建window服务启动程序
需要安装 node-windows
库
yarn add node-windows
1
创建 service.js
文件
const nodeWindow = require("node-windows") ;
const Service = nodeWindow.Service;
let svc = new Service({
name: "node_tools", //名称
description: "自定义工具软件", //描述
script: require('path').join(__dirname,'app.js'), //node执行入口文件
nodeOptions: ["--harmony", "--max_old_space_size=4096"],
});
const args = process.argv
if(args.length === 2){
help()
return
}
function help(){
console.table({
install: '安装服务',
uninstall: '卸载服务'
})
}
const command = args[2]
switch(command){
case 'install':
svc.on("install", function () {
svc.start();
if(svc.exists){
console.log('服务安装成功')
}
});
svc.install();
break
case 'uninstall':
svc.on('uninstall', function () {
if (!svc.exists) {
console.log('服务卸载完成');
}
});
svc.uninstall();
break
default:
console.log('未知命令:'+command)
help()
}
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
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
使用node service.js install
来安装服务,使用node service.js uninstall
卸载服务
创建app.js
程序文件入口
// 用来当做启动文件
const process = require("child_process");
// 执行 npm run build 命令
;(function() {
// 迂回大法(* ̄︶ ̄)
process.exec('pnpm run start -p=10086', (error, stdout, stderr) => {
console.log(error, stdout, stderr);
if (!error) {
// 成功
console.log('运行成功:localhost:3000');
} else {
// 失败
console.log('运行失败')
}
});
})();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
上次更新: 2023/09/22, 16:54:32