找不到PM2命令

ken*_*man 28 linux node.js

我将node.js和npm安装到我的centOS 7服务器上.但我对pm2有疑问.其实真正的问题是我没有linux的经验,我不知道如何改变路径.这是文件夹结构.

* bin
* code
* error_docs
* httpdocs
* lib64
* logs
* tmp
* var
* chat(my node.js folder)
    * node_modules
        * pm2
        * sockjs
    * server.js
* dev
* etc
* lib
* local
* sbin
* usr
Run Code Online (Sandbox Code Playgroud)

我通过键入cd chat并安装了pm2 来输入文件夹npm install pm2.

之后,我尝试通过输入pm2 server.js服务器返回"pm2 command not found" 来使用pm2作为我的server.js .我可以使用node.js没有任何问题,但pm2不工作.

我怎么解决这个问题?

num*_*8er 58

全局安装PM2:

以root身份运行:

npm i -g pm2
Run Code Online (Sandbox Code Playgroud)

或者如果用户是sudo-er

sudo npm i -g pm2
Run Code Online (Sandbox Code Playgroud)

然后返回用户(如果是root用户创建的话,则保留在root用户中)并运行它:

pm2 start server.js
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢您提供如此明确的指示。这对我有用。我将在 5 分钟内接受此答案。 (2认同)
  • 我们可以使用PM2为生产模式创建构建吗? (2认同)
  • @DeepKakkar 实际上 pm2 是用于运行/监控 nodejs 应用程序进程的包。你正在寻找构建工具,所以看看:webpack、gulp、grunt 进行部署/打包自动化。PM - 代表进程管理器,而不是包管理器。 (2认同)

Nic*_*cks 10

PM2是Node.js应用程序的进程管理器.PM2基本上管理应用程序(在后台作为服务运行它们).这就是我们使用sudo权限帐户全局安装PM2的方法

sudo npm install -g pm2
Run Code Online (Sandbox Code Playgroud)

-g选项告诉npm全局安装模块,以便它在系统范围内可用.安装完成后,将安装的路径检查为:

whereis pm2
pm2: /opt/node/bin/pm2 /opt/node/lib/node_modules/pm2/bin/pm2
Run Code Online (Sandbox Code Playgroud)

现在,我们需要在启动bash脚本中添加此路径.添加在〜/ .bashrc文件中的任何位置添加以下行.

export PATH=$PATH:/opt/node/lib/node_modules/pm2/bin
Run Code Online (Sandbox Code Playgroud)

现在重新登录或获取bash脚本,如下所示(以便运行bash脚本并设置路径)

 source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

现在它应该运行.检查pm2的状态

pm2 status
Run Code Online (Sandbox Code Playgroud)

  • 不需要将它的路径添加到`.bashrc`,因为当你安装它时,它会生成可执行文件`/usr/bin/pm2`或`/usr/local/bin/pm2`。也许在另一个发行版中它没有把它放在那里,或者也许在从源代码编译之后你忘记了:`make install` 或者你已经手动将所有结果复制到`/opt/node`。所以在这种情况下为什么不这样做:`sudo ln -s /opt/node/bin/pm2 /usr/bin/pm2` (3认同)

Hen*_*ren 10

就我而言,我使用 zsh shell 运行 MacOs Big Sur。您需要做的第一件事是获取 npm-global 路径的前缀:

npm config get prefix
Run Code Online (Sandbox Code Playgroud)

然后这将返回类似这样的东西:

/Users/your_user/npm-global
Run Code Online (Sandbox Code Playgroud)

复制此路径,并在末尾添加 /bin -> /Users/your_user/npm-global/bin。然后我们将此路径导出到 bash 配置中。

export PATH=$PATH:/Users/your_user/npm-global/bin 
Run Code Online (Sandbox Code Playgroud)

我相信您所有的全局 npm 包现在都可以正常工作了。