snss-types 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,227 +1,227 @@
1
- <p align="center">
2
- <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3
- </p>
4
-
5
- [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6
- [circleci-url]: https://circleci.com/gh/nestjs/nest
7
-
8
- <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9
-
10
- # PM2 开机自启持久化配置指南
11
-
12
- PM2 支持生成系统启动脚本,实现服务器重启后**自动恢复进程列表**,支持主流 Linux、macOS、Windows 系统,兼容多种初始化系统。
13
-
14
- ## 一、支持的初始化系统
15
-
16
- PM2 可通过 `pm2 startup` 自动检测系统,对应关系如下:
17
- | 初始化系统 | 适用系统 |
18
- |------------|----------|
19
- | systemd | Ubuntu ≥16、CentOS ≥7、Arch、Debian ≥7 |
20
- | upstart | Ubuntu ≤14 |
21
- | launchd | macOS(Darwin) |
22
- | openrc | Gentoo Linux、Arch Linux |
23
- | rcd | FreeBSD |
24
- | systemv | CentOS 6、Amazon Linux |
25
-
26
- ## 二、核心操作命令
27
-
28
- ### 1. 生成开机自启脚本
29
-
30
- 直接执行命令,PM2 会提示需要 root 权限:
31
-
32
- ```bash
33
- pm2 startup
34
- ```
35
-
36
- 执行后会输出**带权限的完整命令**,复制粘贴到终端执行(无需手动修改参数):
37
-
38
- ```bash
39
- # 示例输出命令,直接复制执行即可
40
- sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>"
41
- ```
42
-
43
- ✅ 可选:自定义服务名称
44
-
45
- ```bash
46
- pm2 startup --service-name 自定义服务名
47
- ```
48
-
49
- ### 2. 保存当前应用进程列表
50
-
51
- 启动所有需要持久化的应用后,执行保存命令,重启后会自动恢复:
52
-
53
- ```bash
54
- pm2 save
55
- ```
56
-
57
- ### 3. 手动恢复进程
58
-
59
- 如需手动还原已保存的进程列表,执行:
60
-
61
- ```bash
62
- pm2 resurrect
63
- ```
64
-
65
- ### 4. 禁用开机自启
66
-
67
- 删除 PM2 启动配置,关闭开机自启:
68
-
69
- ```bash
70
- pm2 unstartup
71
- ```
72
-
73
- ## 三、进阶配置
74
-
75
- ### 1. Node.js 版本升级后更新启动脚本
76
-
77
- 升级 Node 后,需重新生成 PM2 启动脚本,确保使用最新 Node 二进制文件:
78
-
79
- ```bash
80
- # 1. 先禁用旧配置
81
- pm2 unstartup
82
- # 2. 重新生成新配置
83
- pm2 startup
84
- ```
85
-
86
- ### 2. 指定运行用户
87
-
88
- 以指定用户执行 PM2 启动脚本(替换用户名和家目录):
89
-
90
- ```bash
91
- pm2 startup ubuntu -u www --hp /home/ubuntu
92
- ```
93
-
94
- ### 3. 手动指定初始化系统
95
-
96
- 如需强制指定平台/初始化系统,使用以下命令:
97
-
98
- ```bash
99
- pm2 startup [ubuntu|ubuntu14|ubuntu16|ubuntu18|ubuntu20|centos|centos6|arch|macos|systemd|upstart|launchd|openrc|rcd]
100
- ```
101
-
102
- ## 四、Systemd 系统检查命令(适用于 Ubuntu16+/CentOS7+)
103
-
104
- ```bash
105
- # 查看 PM2 服务是否添加成功
106
- systemctl list-units | grep pm2
107
-
108
- # 查看 PM2 服务日志
109
- journalctl -u pm2-<用户名>
110
-
111
- # 查看 systemd 配置文件
112
- systemctl cat pm2-<用户名>
113
-
114
- # 分析系统启动耗时
115
- systemd-analyze plot > output.svg
116
- ```
117
-
118
- ### Systemd 优化:等待网络联机后启动 PM2
119
-
120
- 编辑 PM2 系统服务文件,添加以下配置,避免网络未就绪导致应用启动失败:
121
-
122
- ```ini
123
- [Unit]
124
- Wants=network-online.target
125
- After=network.target network-online.target
126
-
127
- [Install]
128
- WantedBy=multi-user.target network-online.target
129
- ```
130
-
131
- ## 五、Windows 系统开机自启
132
-
133
- 1. 执行以下命令并按回车确认
134
-
135
- ```bash
136
- npx pm2-service-install -n PM2
137
- ```
138
-
139
- 1. 保存当前 PM2 进程列表,安装好服务后,需要把当前正在运行的应用保存下来,这样开机后服务才能自动拉起它们:
140
-
141
- ```bash
142
- pm2 save
143
- ```
144
-
145
- 以后只要用 PM2 启动或停止了新的应用,记得再次执行 pm2 save 来更新开机自启列表。
146
-
147
- ## 六、完整操作流程(推荐)
148
-
149
- 1. 启动所有需要持久化的 Node.js 应用
150
- 2. 保存进程列表:`pm2 save`
151
- 3. 生成开机自启脚本:`pm2 startup`(复制输出命令执行)
152
- 4. 重启服务器验证:`reboot`
153
- 5. 重启后查看进程:`pm2 list`
154
-
155
- # package.json
156
-
157
- ```json
158
- {
159
- "name": "satellite-network-simulation-server",
160
- "private": true,
161
- "version": "1.0.0",
162
- "description": "Nest TypeScript starter repository",
163
- "license": "MIT",
164
- "scripts": {
165
- "dev": "nest start --watch",
166
- "build": "nest build",
167
- "start": "node dist/src/main.js",
168
- "pm2:start": "npx pm2 start ecosystem.config.js --name nest-app",
169
- "pm2:list": "npx pm2 list",
170
- "pm2:status": "npx pm2 show nest-app",
171
- "pm2:stop": "npx pm2 stop nest-app",
172
- "pm2:delete": "npx pm2 delete nest-app",
173
- "pm2:logs": "npx pm2 logs nest-app --lines 1000"
174
- },
175
- "engines": {
176
- "npm": ">=10.0.0",
177
- "node": ">=20.0.0"
178
- },
179
- "dependencies": {
180
- "@nestjs/common": "^11.0.17",
181
- "@nestjs/config": "^4.0.4",
182
- "@nestjs/core": "^11.0.1",
183
- "@nestjs/platform-express": "^11.1.11",
184
- "@nestjs/platform-socket.io": "^11.1.19",
185
- "@nestjs/platform-ws": "^11.1.19",
186
- "@nestjs/swagger": "^11.4.2",
187
- "@nestjs/typeorm": "^11.0.1",
188
- "@nestjs/websockets": "^11.1.19",
189
- "class-validator": "^0.15.1",
190
- "dotenv": "^17.4.2",
191
- "mysql2": "^3.22.3",
192
- "reflect-metadata": "^0.2.2",
193
- "rxjs": "^7.8.1",
194
- "typeorm": "^0.3.29",
195
- "ws": "^8.20.1"
196
- },
197
- "devDependencies": {
198
- "@eslint/eslintrc": "^3.2.0",
199
- "@eslint/js": "^9.18.0",
200
- "@nestjs/cli": "^11.0.0",
201
- "@nestjs/schematics": "^11.0.0",
202
- "@nestjs/testing": "^11.0.1",
203
- "@swc/cli": "^0.6.0",
204
- "@swc/core": "^1.10.8",
205
- "@types/express": "^5.0.0",
206
- "@types/multer": "^2.1.0",
207
- "@types/node": "^22.10.7",
208
- "@types/supertest": "^6.0.2",
209
- "eslint": "^9.18.0",
210
- "eslint-config-prettier": "^10.0.1",
211
- "eslint-plugin-prettier": "^5.2.3",
212
- "globals": "^15.14.0",
213
- "pm2": "^7.0.1",
214
- "prettier": "^3.4.2",
215
- "source-map-support": "^0.5.21",
216
- "supertest": "^7.0.0",
217
- "ts-loader": "^9.5.2",
218
- "ts-node": "^10.9.2",
219
- "tsconfig-paths": "^4.2.0",
220
- "typescript": "5.7.3",
221
- "typescript-eslint": "^8.20.0"
222
- },
223
- "pnpm": {
224
- "onlyBuiltDependencies": ["@nestjs/core", "@swc/core"]
225
- }
226
- }
227
- ```
1
+ <p align="center">
2
+ <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3
+ </p>
4
+
5
+ [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6
+ [circleci-url]: https://circleci.com/gh/nestjs/nest
7
+
8
+ <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9
+
10
+ # PM2 开机自启持久化配置指南
11
+
12
+ PM2 支持生成系统启动脚本,实现服务器重启后**自动恢复进程列表**,支持主流 Linux、macOS、Windows 系统,兼容多种初始化系统。
13
+
14
+ ## 一、支持的初始化系统
15
+
16
+ PM2 可通过 `pm2 startup` 自动检测系统,对应关系如下:
17
+ | 初始化系统 | 适用系统 |
18
+ |------------|----------|
19
+ | systemd | Ubuntu ≥16、CentOS ≥7、Arch、Debian ≥7 |
20
+ | upstart | Ubuntu ≤14 |
21
+ | launchd | macOS(Darwin) |
22
+ | openrc | Gentoo Linux、Arch Linux |
23
+ | rcd | FreeBSD |
24
+ | systemv | CentOS 6、Amazon Linux |
25
+
26
+ ## 二、核心操作命令
27
+
28
+ ### 1. 生成开机自启脚本
29
+
30
+ 直接执行命令,PM2 会提示需要 root 权限:
31
+
32
+ ```bash
33
+ pm2 startup
34
+ ```
35
+
36
+ 执行后会输出**带权限的完整命令**,复制粘贴到终端执行(无需手动修改参数):
37
+
38
+ ```bash
39
+ # 示例输出命令,直接复制执行即可
40
+ sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>"
41
+ ```
42
+
43
+ ✅ 可选:自定义服务名称
44
+
45
+ ```bash
46
+ pm2 startup --service-name 自定义服务名
47
+ ```
48
+
49
+ ### 2. 保存当前应用进程列表
50
+
51
+ 启动所有需要持久化的应用后,执行保存命令,重启后会自动恢复:
52
+
53
+ ```bash
54
+ pm2 save
55
+ ```
56
+
57
+ ### 3. 手动恢复进程
58
+
59
+ 如需手动还原已保存的进程列表,执行:
60
+
61
+ ```bash
62
+ pm2 resurrect
63
+ ```
64
+
65
+ ### 4. 禁用开机自启
66
+
67
+ 删除 PM2 启动配置,关闭开机自启:
68
+
69
+ ```bash
70
+ pm2 unstartup
71
+ ```
72
+
73
+ ## 三、进阶配置
74
+
75
+ ### 1. Node.js 版本升级后更新启动脚本
76
+
77
+ 升级 Node 后,需重新生成 PM2 启动脚本,确保使用最新 Node 二进制文件:
78
+
79
+ ```bash
80
+ # 1. 先禁用旧配置
81
+ pm2 unstartup
82
+ # 2. 重新生成新配置
83
+ pm2 startup
84
+ ```
85
+
86
+ ### 2. 指定运行用户
87
+
88
+ 以指定用户执行 PM2 启动脚本(替换用户名和家目录):
89
+
90
+ ```bash
91
+ pm2 startup ubuntu -u www --hp /home/ubuntu
92
+ ```
93
+
94
+ ### 3. 手动指定初始化系统
95
+
96
+ 如需强制指定平台/初始化系统,使用以下命令:
97
+
98
+ ```bash
99
+ pm2 startup [ubuntu|ubuntu14|ubuntu16|ubuntu18|ubuntu20|centos|centos6|arch|macos|systemd|upstart|launchd|openrc|rcd]
100
+ ```
101
+
102
+ ## 四、Systemd 系统检查命令(适用于 Ubuntu16+/CentOS7+)
103
+
104
+ ```bash
105
+ # 查看 PM2 服务是否添加成功
106
+ systemctl list-units | grep pm2
107
+
108
+ # 查看 PM2 服务日志
109
+ journalctl -u pm2-<用户名>
110
+
111
+ # 查看 systemd 配置文件
112
+ systemctl cat pm2-<用户名>
113
+
114
+ # 分析系统启动耗时
115
+ systemd-analyze plot > output.svg
116
+ ```
117
+
118
+ ### Systemd 优化:等待网络联机后启动 PM2
119
+
120
+ 编辑 PM2 系统服务文件,添加以下配置,避免网络未就绪导致应用启动失败:
121
+
122
+ ```ini
123
+ [Unit]
124
+ Wants=network-online.target
125
+ After=network.target network-online.target
126
+
127
+ [Install]
128
+ WantedBy=multi-user.target network-online.target
129
+ ```
130
+
131
+ ## 五、Windows 系统开机自启
132
+
133
+ 1. 执行以下命令并按回车确认
134
+
135
+ ```bash
136
+ npx pm2-service-install -n PM2
137
+ ```
138
+
139
+ 1. 保存当前 PM2 进程列表,安装好服务后,需要把当前正在运行的应用保存下来,这样开机后服务才能自动拉起它们:
140
+
141
+ ```bash
142
+ pm2 save
143
+ ```
144
+
145
+ 以后只要用 PM2 启动或停止了新的应用,记得再次执行 pm2 save 来更新开机自启列表。
146
+
147
+ ## 六、完整操作流程(推荐)
148
+
149
+ 1. 启动所有需要持久化的 Node.js 应用
150
+ 2. 保存进程列表:`pm2 save`
151
+ 3. 生成开机自启脚本:`pm2 startup`(复制输出命令执行)
152
+ 4. 重启服务器验证:`reboot`
153
+ 5. 重启后查看进程:`pm2 list`
154
+
155
+ # package.json
156
+
157
+ ```json
158
+ {
159
+ "name": "satellite-network-simulation-server",
160
+ "private": true,
161
+ "version": "1.0.0",
162
+ "description": "Nest TypeScript starter repository",
163
+ "license": "MIT",
164
+ "scripts": {
165
+ "dev": "nest start --watch",
166
+ "build": "nest build",
167
+ "start": "node dist/src/main.js",
168
+ "pm2:start": "npx pm2 start ecosystem.config.js --name nest-app",
169
+ "pm2:list": "npx pm2 list",
170
+ "pm2:status": "npx pm2 show nest-app",
171
+ "pm2:stop": "npx pm2 stop nest-app",
172
+ "pm2:delete": "npx pm2 delete nest-app",
173
+ "pm2:logs": "npx pm2 logs nest-app --lines 1000"
174
+ },
175
+ "engines": {
176
+ "npm": ">=10.0.0",
177
+ "node": ">=20.0.0"
178
+ },
179
+ "dependencies": {
180
+ "@nestjs/common": "^11.0.17",
181
+ "@nestjs/config": "^4.0.4",
182
+ "@nestjs/core": "^11.0.1",
183
+ "@nestjs/platform-express": "^11.1.11",
184
+ "@nestjs/platform-socket.io": "^11.1.19",
185
+ "@nestjs/platform-ws": "^11.1.19",
186
+ "@nestjs/swagger": "^11.4.2",
187
+ "@nestjs/typeorm": "^11.0.1",
188
+ "@nestjs/websockets": "^11.1.19",
189
+ "class-validator": "^0.15.1",
190
+ "dotenv": "^17.4.2",
191
+ "mysql2": "^3.22.3",
192
+ "reflect-metadata": "^0.2.2",
193
+ "rxjs": "^7.8.1",
194
+ "typeorm": "^0.3.29",
195
+ "ws": "^8.20.1"
196
+ },
197
+ "devDependencies": {
198
+ "@eslint/eslintrc": "^3.2.0",
199
+ "@eslint/js": "^9.18.0",
200
+ "@nestjs/cli": "^11.0.0",
201
+ "@nestjs/schematics": "^11.0.0",
202
+ "@nestjs/testing": "^11.0.1",
203
+ "@swc/cli": "^0.6.0",
204
+ "@swc/core": "^1.10.8",
205
+ "@types/express": "^5.0.0",
206
+ "@types/multer": "^2.1.0",
207
+ "@types/node": "^22.10.7",
208
+ "@types/supertest": "^6.0.2",
209
+ "eslint": "^9.18.0",
210
+ "eslint-config-prettier": "^10.0.1",
211
+ "eslint-plugin-prettier": "^5.2.3",
212
+ "globals": "^15.14.0",
213
+ "pm2": "^7.0.1",
214
+ "prettier": "^3.4.2",
215
+ "source-map-support": "^0.5.21",
216
+ "supertest": "^7.0.0",
217
+ "ts-loader": "^9.5.2",
218
+ "ts-node": "^10.9.2",
219
+ "tsconfig-paths": "^4.2.0",
220
+ "typescript": "5.7.3",
221
+ "typescript-eslint": "^8.20.0"
222
+ },
223
+ "pnpm": {
224
+ "onlyBuiltDependencies": ["@nestjs/core", "@swc/core"]
225
+ }
226
+ }
227
+ ```