sudo pm2 提示 找不到命令


一共有 3 台 staging 環境服務器,5 台生產環境服務器,centos7系統。前陣子剛給所有研發配置了自己的賬號,今天有小伙伴說,在其中兩台服務器上 sudo pm2 list 提示:

sudo:pm2:找不到命令

 

經過一番查找,原因是這樣的:

在運行 sudo 命令時,系統會按照 sudo visudo 中的配置去設置 secure_path (安全路徑),以限制用戶行為。默認的安全路徑如下:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

 

其他正常的服務器的 node 是安裝在 /usr/bin 目錄下,命令可以正常運行。這兩台服務器是后來配置的,node 的安裝路徑是在

/usr/local/node/vx.xx/bin/

因此提示找不到命令。

 

網上常見的解決方法是取消 env_reset,並在 bashrc 中用別名重新設置 sudo 命令使用的 PATH 變量。

但是考慮到安全限制以及這個特定的問題,在 /usr/bin 中創建了 pm2 和 node 這兩個軟連接,分別指向 node 安裝目錄的對應命令:

ln -s /usr/local/node/vx.xx/bin/node node
ln -s /usr/local/node/vx.xx/bin/pm2 pm2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM