PM2 Windows 自启动项目教程
本文档基于开源项目 node-pm2-windows-startup 编写,旨在帮助用户了解项目的目录结构、启动文件和配置文件。
1. 项目的目录结构及介绍
项目的目录结构如下:
node-pm2-windows-startup/
├── .gitignore
├── LICENSE
├── README.md
├── index.js
├── invisible.vbs
├── package.json
└── pm2_resurrect.cmd
.gitignore
: Git 忽略文件配置。LICENSE
: 项目许可证文件,采用 MIT 许可证。README.md
: 项目说明文档。index.js
: 项目主文件,用于实现自启动功能。invisible.vbs
: 用于在 Windows 启动时以无窗口模式运行 PM2。package.json
: 项目的依赖和脚本配置文件。pm2_resurrect.cmd
: 用于在 Windows 启动时恢复 PM2 进程的批处理文件。
2. 项目的启动文件介绍
index.js
index.js
是项目的主文件,主要功能是添加注册表项以实现 PM2 在 Windows 启动时自动恢复进程。代码如下:
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
const scriptPath = path.resolve(__dirname, 'invisible.vbs');
const cmd = `reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run" /v "PM2" /t REG_SZ /d "${scriptPath}" /f`;
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.error(`执行错误: ${error.message}`);
return;
}
if (stderr) {
console.error(`错误输出: ${stderr}`);
return;
}
console.log(`标准输出: ${stdout}`);
});
invisible.vbs
invisible.vbs
是一个 Visual Basic 脚本文件,用于在 Windows 启动时以无窗口模式运行 pm2_resurrect.cmd
。代码如下:
CreateObject("Wscript.Shell").Run "cmd /c pm2_resurrect.cmd", 0, False
pm2_resurrect.cmd
pm2_resurrect.cmd
是一个批处理文件,用于在 Windows 启动时恢复 PM2 进程。代码如下:
@echo off
pm2 resurrect
3. 项目的配置文件介绍
package.json
package.json
是项目的依赖和脚本配置文件。主要内容如下:
{
"name": "pm2-windows-startup",
"version": "1.1.0",
"description": "Utility to make PM2 automatically resurrect on Windows startup",
"main": "index.js",
"scripts": {
"install": "node index.js",
"uninstall": "node uninstall.js"
},
"keywords": [
"pm2",
"windows",
"startup"
],
"author": "Mark Lagendijk",
"license": "MIT",
"dependencies": {
"child_process": "^1.0.2",
"fs": "^0.0.1-security",
"path": "^0.12.7"
}
}
name
: 项目名称。version
: 项目版本。description
: 项目描述。main
: 项目主文件。scripts
: 项目脚本,包括安装和卸载命令。keywords
: 项目关键词。author
: 项目作者。license
: 项目许可证。dependencies
: 项目依赖。
通过以上内容,用户可以全面了解 node-pm2-windows-startup
项目的目录结构、启动文件和配置文件,从而更好地进行安装和使用。