pm2 startup在window提示Init system not found
一种其他方向疑似可以考虑nssm,但是未经尝试因为pm2 startup不支持window的自动启动
目前比较通用的方案是
使用其他库生成自启动脚本,如
pm2-windows-startup
```
> npm install pm2-windows-startup -g
> pm2-startup install
```
但是我们观察一下库
https://www.npmjs.com/package/pm2-windows-startup
```js
function enablePm2Startup() {
startOnBoot.enableAutoStart(applicationName, applicationCommand, function (error) {
if (error) {
console.log('Error while trying to add PM2 startup registry entry: ' + error);
}
else {
console.log('Successfully added PM2 startup registry entry.');
}
});
}
```
此处设置自启动是使用了start-on-windows-boot库
这个库的代码也是比较简单的,如下
```js
var WinReg = require('winreg');
var startOnBoot = {
enableAutoStart: function(name, file, callback){
var key = getKey();
key.set(name, WinReg.REG_SZ, file, callback || noop);
},
disableAutoStart: function(name, callback){
var key = getKey();
key.remove(name, callback || noop);
},
getAutoStartValue: function(name, callback){
var key = getKey();
key.get(name, function(error, result){
if(result){
callback(result.value);
}
else{
callback(null, error);
}
});
}
};
var RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';
function getKey(){
return new WinReg({
hive: WinReg.HKCU, //CurrentUser,
key: RUN_LOCATION
});
}
function noop(){}
module.exports = startOnBoot;
```
可以看到就是简单设置window注册表内容,设置到了window的开机注册表来达成开机自启动
# 吐槽
为什么node几句话就要搞个包 nodejs原生的功能太少,很多功能需要额外引入库,还要操心引入库的安全性问题 zip11 发表于 2023-3-29 19:31
nodejs原生的功能太少,很多功能需要额外引入库,还要操心引入库的安全性问题 ...
主要一个非常简单的功能
A引入B写几行
B引入C写几行
C引入D写几行
太奇怪了
一个小功能跑个cmd的问题干了四个库 李恒道 发表于 2023-3-29 19:40
主要一个非常简单的功能
A引入B写几行
B引入C写几行
linux系统,如果安装软件,会同时下载安装依赖程序,目的是不要重复造车轮,用依赖库编程简化了复杂的操作还是省事些,但是不是官方库还得自己审核代码安全,就很费神
页:
[1]