灌水成绩
等级头衔
ID : 1
管理员
积分成就
威望 : 8
点
贡献 : 9 次
下载币 : 449 枚
在线时间 : 2005 小时
注册时间 : 2013-9-5
最后登录 : 2026-10-25
方法一: 卸载宝塔安装的PM2管理器,尝试重新安装5.2版本、多试几次,或者重启服务器或宝塔再次进行安装! 方法二: 自己手动安装PM2 需要先安装npm
$ R" q( b$ G, z % V) c+ u) l1 g& L- J- j$ G
& `7 H. f( a% @1 b4 E1 |; s, m
4 r l! C- y7 J @5 a
yum -y install npm
, E0 [) o+ { O ( u+ S; `" ?: M3 y5 T
: b v! \/ B5 e1 R : w3 ^& q7 B/ G$ n: D
安装pm2
3 [( b' n& P( M/ V+ \; {$ P7 G4 J. f 7 v9 a2 S F+ J$ j5 m. Z+ I
$ a6 h$ ^6 L2 F# E; i
" L1 {* g) K: a npm install pm2 -g
$ ]6 W% k! u6 ^ $ t% N% M* N+ r; h/ s
2 {+ y8 e7 K8 ?, B _2 F $ Z d7 @* b- O1 W' O9 R: |
添加配置文件
6 t7 N. L0 _0 q% c V. B/ d
6 r* d" k5 o/ O( c
0 [/ V. K4 L6 b8 n/ a' e$ C1 d8 w " J0 ^) E" _$ x. }8 r4 {; \, r1 C7 m4 A
vim /etc/profile / v; Z5 X6 X8 O9 l
( _3 \7 W, e$ o+ ^8 R+ K" r
PATH=$PATH:/usr/lib/node_modules/pm2/bin
6 N/ F7 t K) T3 i ( M7 G+ X1 }: {9 ]7 ^; y
source /etc/profile ( P3 h. c/ r% y! d. w0 }0 X. W
, I0 W! [! K# \/ a4 q
" m$ r O' P5 W6 q1 t6 e; G
8 `- U7 Q8 Y: k( ], d6 U 测试 6 H: ?( V# d/ b$ F5 I4 p- e
6 z/ [, Q' L# M% `: z
{5 f& A) [$ f1 z0 L
$ O# R2 d5 n: c( J, _
pm2 -v ) u% I% P: w; I: D! j7 m" W
- |% X. G- Z6 A7 k( _. {
- X* S9 P$ @! U% b7 A
: r( m, {3 o% Y W 查看PM2安装路径 & y& M" C& R; Z+ n5 A7 g
1 l) }2 `9 K+ F9 {7 m% S
7 A2 }1 w1 \1 {* u, h! p6 [ / N& t* _8 Y* ?/ x& W
find / -name "pm2"
+ l1 H9 I/ B. J- p* G : Q$ ?8 o7 o1 W% M, ~$ X
% d& q D9 J5 M) r
$ {1 _/ z e2 M4 ^) i1 p+ Z) T 根据自己的安装路径修改配置文件 [color=var(--focus-color)][url=] [/url] 可能遇到的问题 [color=var(--focus-color)][url=] [/url] 问题原因 是node和npm版本太低,我这里版本分别是3.10和6.17
[color=var(--focus-color)][url=] [/url] 解决办法–先卸载之前的npm
: c V: z. d( e& n8 v R% N 9 R I0 V+ X b- W n
4 @- [8 o+ W* Q% n* n
; i1 B$ `2 o1 ]0 Z npm uninstall npm -g 7 ?1 Y. j# s- t+ d+ p! ^& U8 j
0 w* N; P6 `+ q0 D2 ^0 K
: m6 o$ |% _! S) r4 D( A+ w
2 N( r# U4 x' Z7 n% m9 K7 {
安装依赖
; r" l9 K7 @7 b' y/ [/ n/ d; m3 A - m9 y) |1 @5 {4 s
) {( ?2 p) i6 [- f2 Y: i, z+ y
. f- H- Y. A. c6 m9 |) I8 [+ X6 O yum -y install gcc gcc-c++
5 l( x. f. K R+ x! P / X b+ d1 h% s! U' O
) ~ ^/ P N# F
' ?4 E$ t, W5 g/ K( a9 H2 {; B i
下载高版本的node安装包 % v9 J4 w( N- G
9 @- V Z5 |/ N% k& ]
8 j- ~2 { L, n S. n
: P z! z% w2 {, h: L wget https ://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz ! j1 T4 [" L ]1 k0 R% @
: m: F& r k8 P, [' B
* A% M8 a; o7 I. \; y. V# c 9 ~9 }5 T( A6 d0 Z# b7 q8 r8 @! M
解压到相应的目录 3 L& v0 E. l! U7 U6 x
4 t3 p9 B9 c- j( g4 C" M) [
) a! B8 l, W0 J4 N
" D- I h8 x6 U: I
tar -xf node-v10. 14 . 1 -linux-x64. tar . gz ' Y* ]. c- F/ V/ D3 Q
1 o( I6 n) \! Y- P+ O+ t; A
o# Z1 `9 h& O6 E- t3 a. C* w8 K( B
4 F' z$ l& c/ j f; N 重命名 ' z2 B$ C+ A8 h5 v, k% ?9 h
8 J% S+ j' | L8 w
( ~! `1 t; n7 e5 ]2 z3 F
' t' Z, B: l1 B( T6 g5 q! g mv node-v10. 14 . 1 -linux-x64 node
0 ]2 V# Z3 o3 k& N8 D1 f
' H: _) j; ]1 {2 E7 y
6 l# u* l+ c2 A- e' J
/ S, Y- g9 ?& y- c; \5 N/ f; }8 r6 y 添加环境变量(根据自己的路径添加) * B, I# m' W& { [) V# \
5 X9 Y' i3 H3 I! w# f& Y0 s5 I
/ D& W: \2 {# M8 W
+ ~ r) I; w$ f! P: }: X
vim /etc/profile
) B7 c8 T! B2 m: K2 |0 g ' H( G- S! `* k' Q
export NODE_HOME=/myinstall/npm/node
, x2 I9 y8 _+ d' Z8 E8 [; @
" O4 o" }. L+ b/ h export PATH=$NODE_HOME/bin:$PATH
+ F* @# L p) Z* r/ T; V) Y8 Z 9 `* h7 E S" O7 V6 P) x
" ^9 {1 s; N3 ?( D* x/ f' E % n. _7 e1 X3 V) l. R; E/ G
重新加载环境 ' K+ [0 A5 N" p% M( `- m- L7 ~
' u5 M) |. q; Q9 Y; ^
2 e# n3 u5 n" |/ y' f; e4 w
" U7 P7 E- y8 W8 }0 E! h source /etc/profile
. |$ d5 ^9 Y x7 L / W; h) G. l0 V! X- P
, o7 b8 C6 N* P4 {2 ?1 \, m7 r+ v+ f
+ n. E' G* g" x7 G7 D v y 查看相应版本 [color=var(--focus-color)][url=] [/url] 安装pm2
* i! o# x& u9 ^. O L$ _/ V1 S3 s
7 M5 f0 U& D2 k B9 Y2 t( _ , ?) B" S5 i% m" B/ V k
npm install pm2 -g
( C x# x% \3 s' u / R6 }8 h5 L2 N( ~. L( h' P4 H6 D9 e
% M' j3 ?2 Z' i1 _1 Y a, E t- L 8 L8 Q* g. F3 y
检测 ( J8 {0 z0 l* ~2 W+ h0 x C
' g% `* }" @) K
8 Z5 w* \4 T0 K( _
8 q) Z5 d* ~! g9 ] pm2 list
# y7 z4 ~( @: O& w' |
$ d$ k6 X2 d4 {+ |( R9 @
3 C6 F, p8 v5 v R, Q& a
7 j: j. [+ r- j9 K [color=var(--focus-color)][url=] [/url] 常用命令 : M9 y5 M1 z- B$ x; g0 F
7 v+ k0 A; s U
8 G4 K F! u: O$ P7 r+ l: X
~$ ^4 U, X9 G* [$ ~5 m" v $ pm2 start app. js # 启动app.js应用程序
+ m; U1 U( y, n6 ? : x. W, I& m& d9 N; p4 f
. i+ r9 \$ h5 I% D: Q l' T
( u4 e. A1 I& p$ A' `) U" X
4 Q) |/ Q0 g" K) L
+ [& ? |" c4 ?" t$ [ 2 l' ~, b' n) M9 }
) U* ?; B) F' M' t5 z, l $ pm2 start app. js -i 4 # cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡 8 w3 P b4 e, b2 r; K& o! |6 C; r
( L& X& x# @% q: j ' v$ S+ V$ F! A! J
7 Y8 A: s% N7 Z$ l( V1 |5 |( L
9 {: j; u9 T1 |% q" x5 \
$ n: N4 H/ j* K& t% d& o# B$ O: e( I 0 Z3 d- D4 B# {% x0 D0 A! z
5 q9 @; g6 p B7 a
$ pm2 start app. js --name= "api" # 启动应用程序并命名为 "api"
. c; i5 G9 d' b, y( t! a& w
: G+ W' {9 ^& b8 U- u6 ~9 H
]; M6 U; j$ b' q* w" S 4 D t6 p: B+ r$ C" a
8 Y4 d7 d4 n; E# a- o/ f0 ~: k+ O
* x% h1 U' @3 K9 V) H& n : @. I9 D% ?5 Z* ~! A; W
) l& Y" _" `! ]+ C! ~# Y9 ~ $ pm2 start app. js --watch # 当文件变化时自动重启应用 , d; _/ E8 x1 s+ ?/ v
0 ^9 I7 I" Y7 ^, @+ J4 r- s! _ + p4 F( s5 `6 y* F; V# _3 p8 m) a
, E o( Y3 Z1 l9 W
3 X4 [/ d+ j0 Y: |& N3 c 7 E; x3 P. C8 a- l, q7 f+ _" o
& A9 o+ Q/ k& B1 S9 ?( \/ A$ g
, z) B( C3 c+ e- d! R6 x* X; v5 F% l $ pm2 start script. sh # 启动 bash 脚本 : ^- a, d0 ?- s3 }, H
+ Z; G/ r1 ?* U O( H% F 4 X1 q9 Q( P; _+ B% o1 ]- Z: l: y2 L
5 i; h" W9 {5 o4 p& C' K
' M# N# l: z) a9 S# G& G) _ ; \3 ]/ y9 |6 A. [' p
( @# f8 [: Z. k* {
# y T1 K. d6 ^; \* k- | $ pm2 list # 列表 PM2 启动的所有的应用程序 ( R+ V e, u* e. e) G
! U- I# ], s! t/ v0 h+ N' D2 Z5 E
8 G' x% |! W1 C0 O5 }
( {% V$ x1 Q& C, h8 v2 m
1 R: Q/ L7 H6 y7 n7 E8 ?
; a% s' G2 O g
5 b' B! L8 \$ ^3 Z# M9 L
' E$ G0 h( _6 g( J6 t
$ pm2 monit # 显示每个应用程序的CPU和内存占用情况 1 r9 d+ D' W k, O# n
5 r. u( r5 V, Z, r% v! I
% H, w D; `( [9 C0 B; m
; T0 p( T* T* }/ l H
. F1 k$ d4 r9 G$ I x) l
. o& d9 R8 A3 B8 B
- G5 S9 N5 @) }' c/ z, Q! B
. s9 M+ {& O( I4 K $ pm2 show [ app-name ] # 显示应用程序的所有信息 % |0 Y- H- u' C$ \- J1 A
. f( J. {0 p- r
* E" B! U% k+ G. n& b
9 W! `+ t6 G2 Q
! f s4 m/ a% s9 |8 H - I8 s1 }" t6 ~3 Q% I
& d6 S- ^9 x* [ D4 ]
8 r2 P% ~! q2 a $ pm2 logs # 显示所有的应用程序的日志
8 G S! H: x$ Q- A1 [8 u : A. u& f5 p8 z/ }$ c3 Q! ?
Z' W; K5 l+ v# ^
" d& J* G& }8 ~* j
6 k. c E! v* |' s$ q. e
! a/ k- @+ f4 G) K * s$ e) l0 P" W! x) A% P7 |
, @9 }& A! `+ z $ pm2 logs [ app-name ] # 显示指定应用程序的日志 0 m0 C6 B) Z9 F% G
: K! F, j @& @' R5 | 2 [( ?" L3 I- T! J
, f- k$ n# z( ~# ]3 v 7 U4 Q/ L0 s* x0 V. u- [
$ E/ M, t' x7 i* a) H5 J
4 ~. _+ T& ?5 R' {; b
5 J+ E8 H/ H$ i+ k0 |; }
$ pm2 flush
$ O! I& \' C6 O
/ }+ b4 W R/ H9 h5 S N
6 I6 }0 O- q# S2 L# d; r
9 m$ { h1 h Z5 ?1 ]
) K) Y/ y F* B
. ~# R) z2 J0 [+ E1 M # s, A6 R' z- L; t/ c
8 F3 ^# K2 W. b/ Q, a4 l: T $ pm2 stop all # 停止所有的应用程序
; w8 o J$ Z9 v( |( {+ l- t, E
! Q4 d* p ~) ~. `- y' R7 d 0 U5 m0 N2 F9 C) w9 F: Z4 ^
; w1 D2 Y5 D. J6 l1 W6 f. S
8 f e* C8 r, q& o2 F) [
* k, X/ H! W X- T
& K9 u) B8 V( O 0 |5 k# R$ p$ Q& {) j
$ pm2 stop 0 # 停止 id 为 0 的指定应用程序 * m& }3 j: ^& ^7 B; q
8 x( ?( A$ z6 @2 i3 G9 f ( g; ~) a% ~3 Z
# k+ e! }' H% p* @5 E% o, O
1 v6 K6 s& D- o- P3 L
6 V# d6 S9 n5 t0 @3 } 7 x( Z* b; _: Y, m& O
, F2 c \9 c. R. Y8 C$ F, z
$ pm2 restart all # 重启所有应用 1 u% |% K* {4 Q* W2 D
6 z7 g3 h0 s2 y2 B2 \( E 3 J" u+ U' ?5 O( T
" M2 _- Q' G- S2 u G) [, U2 H8 c ! R, w1 c* W* H3 c0 l5 w# M
Z! ?6 P/ U9 ?& C
7 e& K/ m% Q4 [ w# ?( u
3 T+ {1 R# _7 z $ pm2 reload all # 重启 cluster mode 下的所有应用 + ]7 H. i5 F9 o0 `, F4 F
2 v3 r/ g* {9 U/ ?3 H
, l( O& T. D" J' }: e1 @
# |5 _$ W& r* G- J) O& ~* a
* Q: b1 R7 d& J+ L. i" `& M/ V6 w 7 @/ T* Z* F2 r z6 A3 v
% p6 y! s2 y w0 x+ Q; L: O4 G" f
* H3 l" ?5 W( H* {# \ $ pm2 gracefulReload all # Graceful reload all apps in cluster mode - T" g7 V( V* t3 i2 j4 C$ U# E
' @* z+ W" e0 x8 ^$ A; Z , |+ t0 e& i8 P4 |
# J |* e( Q+ y
( \4 P. S0 ]! s2 r! j; M, x
: U- ~9 i" S1 N7 k % T6 x3 I5 O9 m8 Q2 I" }3 x
' C0 p( [& v& u
$ pm2 delete all # 关闭并删除所有应用
/ U3 X/ A2 E1 v# t! q! t & ], H- _) k5 F3 t5 x* s& c# P
$ H) W3 M! `3 W2 ]$ `
4 z$ ]7 z f. Z2 ~
7 u. L% p# M F& \+ H, S $ V2 @" ]( C) t; K- f. d- [- t$ T
& H8 @* v* x' [' s
5 D6 X E: u) y8 x) I. E: W
$ pm2 delete 0 # 删除指定应用 id 0
/ E( ]0 |- n% S6 t 2 u# y6 f' P+ x7 A2 q" p+ `
' c T- s: s; X& Y% \, y* R% B 7 b& `. z7 |/ g5 ]
# p! \/ `" A+ T* X
& b* G5 X. k6 c$ ~
( x V- I9 p/ _9 j' Y; [
# n }' a! e b7 O $ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
) ~) r+ [" [' G) n5 I
( O. m4 a* k' M* v1 k8 z) L% b % H! U8 f1 c- N
8 h% N( P" S: B$ [6 o
' G& }$ R; H7 [6 F+ `6 E
. L, k( `- I; D* n4 p" p+ \
4 a3 O: e) R7 e4 X 7 |5 H2 e. E/ x/ L7 T' `% [
$ pm2 reset [ app-name ] # 重置重启数量 6 a- n: b0 S& p
* {4 A2 L" i- k; C4 _' q
7 _5 @6 ]4 c+ L5 p1 R - q; i# N4 K( Q
* K2 V* k: u" G" O2 p
1 g f( ]& }/ p/ q% D/ g) R
" Q/ b& b6 s: h Q2 v5 ~9 M6 U ' |4 Q: l0 Y- s( V# F- O
$ pm2 startup # 创建开机自启动命令
, G; H4 ^! G% `4 ] 8 P' T' J/ E8 p
9 l0 Q( Z8 z/ V: n9 T
- g) M0 [6 _) Y$ L, @& B
$ W6 a4 I9 [; T8 I2 y1 G% u- z
. E; V9 o* A& f& I( z2 _
* h; P2 E% F. |; V% r+ x3 Q; W
/ u: T$ \4 \0 r& Q: T, x $ pm2 save # 保存当前应用列表 5 s$ E" Z* ^ ^6 e" }
: L/ N: _+ W3 A- L
* m- f4 F2 |# G m% k+ q+ v
/ s# e+ t3 N9 g# ]
, o, D% _$ p. V2 ~. ?$ t" ^
. @& Z/ N, s: p1 X) T2 \ - b. |7 O- _6 ~, e$ y% j
. s, B2 S$ r8 \* O) I2 B* j: u
$ pm2 resurrect # 重新加载保存的应用列表
& [2 D* L {; v $ X& c7 ]! I1 K. {, ]1 P
( [8 R+ C7 c5 n- g4 a, x
5 D$ }6 k+ i. h5 }0 T& E9 z8 J5 N! P # ] u1 b$ ]; p+ w0 [' g2 J3 }( h
6 I$ L" A9 t7 `2 p( L M: f$ j0 m8 y
) K* t0 v- M. `6 `5 @2 O 8 y+ a& g" t; B. G# q+ I3 x
$ pm2 update # Save processes, kill PM2 and restore processes
, f4 g$ K5 Q: { 6 d( z7 e* F' l% ]6 `/ u
c% v; N0 o4 {9 K* K
% I2 X: a* G, h3 p
# B+ Z' d8 k+ N1 X0 @; q
& g% d f, Y: y$ \
- A T$ f# d% _* f8 z
. `% @: {9 o- ^" }0 L $ pm2 generate # Generate a sample json configuration file . ^7 J9 Y2 a0 ^# ]5 o' @9 L8 i! T8 M
# G% B/ C7 E5 ]) o) Y7 Q3 u 4 F9 K* N' f* }% d0 W/ [
4 g( q5 F3 k2 F: V ?
举例:& l2 x9 Y% E$ P2 w
阿拉德的脚本启动方法
3 Z( u* Z2 b4 D+ ]8 w7 \& s1 D! i
1 H2 L* \, }( \" E0 m
h2 n. ?9 o. z% B% m7 F 4 E" u+ r( K/ g: E6 L& v% v
cd /www/wwwroot/gmald/src
" k; J) h5 V2 m. w/ K
8 m* ]9 v! e) R1 \0 o- D
% p4 X: K; K5 H) j
. L3 k+ l" C: K8 `- \ $ K! _" J8 H* ?3 @, L/ `8 j5 k% s
* ]5 n1 E4 o% h, o3 G/ D
. ?5 B1 z+ g8 B9 }+ o. h' G3 ` 2 I3 ?; K) @: l- c& g4 h' c
pm2 start app. js
+ o. s: X- O" Z4 O! z9 w5 N
8 Q8 [+ S# m$ x1 J4 ^ 4 C: x. B4 g" B$ r2 |# D
E, F. R. k- i) X2 B8 |9 Q
: I3 `' u; M9 Y9 v1 l
免责
帖子地址
打造全网最多免费游戏网站,部分资源失效,私聊站长补