2017-09-01 146 views
2

我正在使用Amazon Linux AMI 2017.03.1(HVM),SSD卷類型。AWS EC2,pm2:無法看到pm2運行列表

而且我安裝的node.js,通過像這樣通過以下方式NPM因爲我想 全球安裝,如果我不安裝全球PM2,當 我配置EC2引導啓動PM2命令這是行不通的。

之後,我創建了自己的AMI圖像。

### node.js, npm install ### 
    $ sudo su 
    $ curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - 
    $ yum -y install nodejs 
### pm2 install ### 
    $ npm install pm2 -g 

當我通過我自己的AMI創建新的EC2實例時,這裏是我在'高級詳細信息'中的用戶數據文本。

### user-data ### 
#!/bin/bash 
cd /home/ec2-user/Node.js-Test 
sudo git pull origin master 
export PM2_HOME=/home/ec2-user/ 
sudo env PATH=$PATH:/usr/bin/ pm2 startup systemv -u ec2-user --hp /home/ec2-user 
su ec2-user 
pm2 start /home/ec2-user/Node.js-Test/app.js 
pm2 save 

所以當我推出新的EC2實例上面這個配置, PM2命令工作,但我不能看到正在運行的PM2列表。

當我檢查日誌文件/var/log/cloud-init-output.log,它具有運行應用程序PM2的信息!

### /var/log/cloud-init-output.log ### 
[PM2] Spawning PM2 daemon with pm2_home=/home/ec2-user/ 
[PM2] PM2 Successfully daemonized 
[PM2] Starting /home/ec2-user/Node.js-Test/app.js in fork_mode (1 instance) 
[PM2] Done. 
┌─────────────────────────────────────────────────────────────────────────────────────────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem  │ user │ watching │ 
├────────────────────────────────────────────────────────────────────────────────────────────── 
│ app  │ 0 │ fork │ 2677 │ online │ 0  │ 0s  │ 99% │ 15.4 MB │ root │ disabled │ 
└─────────────────────────────────────────────────────────────────────────────────────────────┘ 
    Use 'pm2 show <id|name>' to get more details about an app 

,但我不能看到運行PM2名單@ EC2用戶,@root

### in terminal EC2 instance ### 
[[email protected] ~]$ pm2 list 
┌──────────────────────────────────────────────────────────────────────────────────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ 
└──────────────────────────────────────────────────────────────────────────────────────┘ 
Use 'pm2 show <id|name>' to get more details about an app 
[[email protected] ~]$ sudo su 
[[email protected] ec2-user]# pm2 list 
┌──────────────────────────────────────────────────────────────────────────────────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ 
└──────────────────────────────────────────────────────────────────────────────────────┘ 
    Use 'pm2 show <id|name>' to get more details about an app 

有誰,誰知道這個問題和解決方案??? 謝謝。

回答

1

我在EC2用戶數據改變幾個命令,如

#!/bin/bash 
cd /home/ec2-user/Node.js-Test 
sudo git pull origin master 
sudo pkill -f PM2 
sudo pm2 start /home/ec2-user/Node.js-Test/app.js 
sudo pm2 startup 
sudo pm2 save 

,我可以看到PM2列表現在打字sudo -i pm2 list。 ,並顯示空的列表,當我只輸入pm2 list

[[email protected] .pm2]$ sudo pm2 list 
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem  │ user │ watching │ 
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤ 
│ app  │ 0 │ fork │ 2458 │ online │ 0  │ 11m │ 0% │ 29.3 MB │ root │ disabled │ 
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘ 

而這裏是/root/.pm2/dump.pm2的上下文。

https://github.com/geoseong/Node.js-Test/blob/master/pm2/dump_pm2_sudo_170904

希望它能幫助那些誰的問題是這樣的。

謝謝。