pm2 - Startup script for non-root user permission denied
Solution 1
I'm not sure if there are any risk with the following method, but it did solve same issue I was facing.
1- open new terminal (fresh, without sudo permission)
2- sudo chmod -R 777 /home/user1/.pm2 (gives permission to the .pm2 folder)
3- pm2 start index.js (Note that there is no sudo here)
4- pm2 save
5- pm2 startup
6- Restart your computer and check pm2 monit
7- It should list your index process now. If not, try from 1-5, 8, and then 6.
8- paste the command listed in step 5
Solution 2
You probably started the pm2 tasks using root. So check the system processes that you are using by:
sudo systemctl -a
If you find a unit name pm2-root, that is the one that you need to remove. Run the command sudo systemctl stop
pm2-root and sudo systemctl disable pm2-root
. Then use your user name to start the process.
Make sure you are using pm2-sammy with sammy as your user name.
Related videos on Youtube
Baterka
Updated on June 04, 2022Comments
-
Baterka almost 2 years
I just installed pm2 (on Debian 9) and I need to run NodeJS server of few users. Every user have own NodeJS server what I need to run under them. Not under root.
For example I have user "user1":
- I can control pm2 normally
- This command on user1 for enabling startup scripts:
pm2 startup
- Then I copypaste outputed command to root and execute...
- Startup script for given user is now created
pm2 still works on user1, but after restart I cannot control pm2 and Iam getting this error:
[PM2][ERROR] Permission denied, to give access to current user: $ sudo chown user1:user1 /home/user1/.pm2/rpc.sock /home/user1/.pm2/pub.sock
If I execute this command on root, I can then again control pm2 on user1, but all NodeJS servers are executed as root!!
I need to 'grant' permissions every restart..
How to fix this?
-
Max about 2 yearsWhy does every issue like this end up in someone suggesting adding blanket 777 rights to servers...