PM2 command not found

2020-02-19 08:02发布

I installed node.js and npm to my centOS 7 server. But i have problems with pm2. Actually real problem is i don't have experiences in linux and i don't know how to change path. Here is folder structure.

* 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

I entered folder by typing cd chat and installed pm2 with npm install pm2.

After that I tried use pm2 for my server.js by typing pm2 server.js server returns "pm2 command not found". I can use node.js without any problem but pm2 not working.

How can i solve this?

标签: node.js linux
8条回答
【Aperson】
2楼-- · 2020-02-19 08:09

PM2 the process manager for Node.js applications. PM2 basically manages applications (run them in the background as a service). So this is how we install PM2 globally with sudo permissions account

sudo npm install -g pm2

The -g option tells npm to install the module globally, so that it's available system-wide. Once this is installed, check the installed path as:

whereis pm2
pm2: /opt/node/bin/pm2 /opt/node/lib/node_modules/pm2/bin/pm2

Now, we need to add this path in startup bash script. Add add the following line anywhere in ~/.bashrc file.

export PATH=$PATH:/opt/node/lib/node_modules/pm2/bin

Now re-login or source the bash script as follows(so that bash script runs and path is set)

 source ~/.bashrc

and now it should run. check the status of pm2

pm2 status
查看更多
爱情/是我丢掉的垃圾
3楼-- · 2020-02-19 08:14
sudo npm i -g pm2

It worked for me.

查看更多
我欲成王,谁敢阻挡
4楼-- · 2020-02-19 08:21

This option helped me:

sudo npm i -g pm2
查看更多
Animai°情兽
5楼-- · 2020-02-19 08:25

If you used nvm to install node and npm, install pm2 for normal user.

run as root:

sudo su
vim ~/.bashrc

append below code, change NVM_DIR to you normal user's home folder:

export NVM_DIR="/home/[PLEASE CHANGE]/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  
# This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. 
"$NVM_DIR/bash_completion"  
# This loads nvm bash_completion

at last :

source ~/.bashrc
查看更多
孤傲高冷的网名
6楼-- · 2020-02-19 08:25

If you install through NPM and it does not work, you can create a symbolic link as well :

ln -s /<your-user>/.npm-global/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2

After that, you're going to be able to call:

pm2
查看更多
小情绪 Triste *
7楼-- · 2020-02-19 08:27

Install PM2 globally and run everything as a root user

sudo apt-get install npm
sudo npm i -g pm2
sudo ln -s /usr/bin/nodejs /usr/bin/node

You are good to go

查看更多
登录 后发表回答