feat: 增加进程托管
This commit is contained in:
		
							parent
							
								
									d2b2673fc4
								
							
						
					
					
						commit
						6b2e4a0738
					
				
							
								
								
									
										22
									
								
								README.md
								
								
								
								
							
							
						
						
									
										22
									
								
								README.md
								
								
								
								
							| 
						 | 
					@ -10,9 +10,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> 必要环境 Windows/Linux + Chrome/Chromium/Edge
 | 
					> 必要环境 Windows/Linux + Chrome/Chromium/Edge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> 必要环境 18.18.2>Node.js>16.14.0 + Redis>5.0.0
 | 
					> 必要环境 Node.js>16.14.0 + Redis>5.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
如果你的系统不支持18.18.2版本,最低能下载16.14.0版本,这是最新的puppeteer版本限制。
 | 
					推荐使用`18.18.2`版本,如果系统不支持,最低要求`16.14.0`,这是新版`puppeteer`的限制
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 开发者
 | 
					## 开发者
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,29 +49,23 @@ pnpm install
 | 
				
			||||||
- 启动
 | 
					- 启动
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
npm run ts:app
 | 
					npm run app
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 重新登录
 | 
					- 重新登录
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
npm run ts:app login
 | 
					npm run app login
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> 暂不支持PM2托管进程
 | 
					- 进程托管
 | 
				
			||||||
 | 
					 | 
				
			||||||
## Unknown file ".ts"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
node >= 20.0.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- 启动
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
npm run latest:app
 | 
					npm run start
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 重新登录
 | 
					- 杀死进程
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
npm run latest:app login
 | 
					npm run kill
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					import { spawn } from 'child_process'
 | 
				
			||||||
 | 
					const argv = [...process.argv].splice(2)
 | 
				
			||||||
 | 
					const argvs = argv.join(' ').replace(/(\S+\.js|\S+\.ts)/g, '')
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * ***************
 | 
				
			||||||
 | 
					 * 启动内部运行脚本
 | 
				
			||||||
 | 
					 * ***************
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					const child = spawn(
 | 
				
			||||||
 | 
					  'node --no-warnings=ExperimentalWarning --loader ts-node/esm src/main.ts',
 | 
				
			||||||
 | 
					  argvs.split(' '),
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    shell: true,
 | 
				
			||||||
 | 
					    stdio: 'inherit'
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * *************
 | 
				
			||||||
 | 
					 * exit
 | 
				
			||||||
 | 
					 * *************
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					process.on('SIGINT', () => {
 | 
				
			||||||
 | 
					  if (child.pid) process.kill(child.pid)
 | 
				
			||||||
 | 
					  if (process.pid) process.exit()
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										22
									
								
								package.json
								
								
								
								
							
							
						
						
									
										22
									
								
								package.json
								
								
								
								
							| 
						 | 
					@ -3,19 +3,19 @@
 | 
				
			||||||
  "version": "4.0.0-rc.0",
 | 
					  "version": "4.0.0-rc.0",
 | 
				
			||||||
  "author": "Yoimiya-Kokomi, Le-niao",
 | 
					  "author": "Yoimiya-Kokomi, Le-niao",
 | 
				
			||||||
  "description": "QQ Group Bot",
 | 
					  "description": "QQ Group Bot",
 | 
				
			||||||
  "main": "app.js",
 | 
					  "main": "./index.js",
 | 
				
			||||||
  "type": "module",
 | 
					  "type": "module",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "app": "node .",
 | 
					    "app": "node index.js",
 | 
				
			||||||
    "login": "node . login",
 | 
					    "login": "node index.js login",
 | 
				
			||||||
    "start": "pm2 start ./config/pm2/pm2.json",
 | 
					    "build": "rollup --config rollup.config.js",
 | 
				
			||||||
    "stop": "pm2 stop ./config/pm2/pm2.json",
 | 
					    "start": "pm2 startOrRestart pm2.config.cjs",
 | 
				
			||||||
    "restart": "pm2 restart ./config/pm2/pm2.json",
 | 
					    "stop": "pm2 stop pm2.config.cjs",
 | 
				
			||||||
    "ts:app": "ts-node src/main.ts",
 | 
					    "delete": "pm2 delete pm2.config.cjs",
 | 
				
			||||||
    "ts:login": "ts-node src/main.ts login",
 | 
					    "kill": "pm2 kill",
 | 
				
			||||||
    "ts:build": "rollup --config rollup.config.js",
 | 
					    "logs": "pm2 logs",
 | 
				
			||||||
    "latest:app": "node --no-warnings=ExperimentalWarning --loader ts-node/esm src/main.ts",
 | 
					    "monit": "pm2 monit",
 | 
				
			||||||
    "latest:login": "node --no-warnings=ExperimentalWarning --loader ts-node/esm src/main.ts login",
 | 
					    "pm2": "pm2",
 | 
				
			||||||
    "docs": "typedoc --options typedoc.json",
 | 
					    "docs": "typedoc --options typedoc.json",
 | 
				
			||||||
    "format": "prettier --write .",
 | 
					    "format": "prettier --write .",
 | 
				
			||||||
    "prepare": "husky"
 | 
					    "prepare": "husky"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					const argv = [...process.argv].slice(4)
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  apps: [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      name: 'Miao-Yunzai',
 | 
				
			||||||
 | 
					      script: './index.js',
 | 
				
			||||||
 | 
					      args: argv,
 | 
				
			||||||
 | 
					      max_memory_restart: '512M',
 | 
				
			||||||
 | 
					      restart_delay: 60000
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue