Unitech / pm2

Node.js Production Process Manager with a built-in Load Balancer.
https://pm2.keymetrics.io/docs/usage/quick-start/
Other
41.44k stars 2.62k forks source link

Why pm2 logs are being saved with root as owner? #5842

Open jfoclpf opened 4 months ago

jfoclpf commented 4 months ago

I can perform all the pm2 commands with normal user, but to pm2 flush logs I need super user permissions.

I don't understand because the logs are being created at my home folder, but they have root ownership

$ ll /home/<my_username>/.pm2/logs/<myapp>-out-18.log
-rw-r--r-- 1 root root 6252 Jun  7 19:54 /home/<my_username>/.pm2/logs/<myapp>-out-18.log

How can I pm2 flush logs without sudo?

# Run the following commands
$ pm2 report
--- PM2 report ----------------------------------------------------------------
Date                 : Fri Jun 07 2024 20:28:10 GMT+0200 (Central European Summer Time)
===============================================================================
--- Daemon -------------------------------------------------
pm2d version         : 5.1.0
node version         : 16.20.2
node path            : not found
argv                 : /usr/local/bin/node,/usr/local/lib/node_modules/pm2/lib/Daemon.js
argv0                : node
user                 : root
uid                  : 0
gid                  : 0
uptime               : 2652min
===============================================================================
--- CLI ----------------------------------------------------
local pm2            : 5.1.0
node version         : 16.20.2
node path            : /usr/local/bin/pm2
argv                 : /usr/local/bin/node,/usr/local/bin/pm2,report
argv0                : node
user                 : jfolpf
uid                  : 1000
gid                  : 1000
===============================================================================
--- System info --------------------------------------------
arch                 : x64
platform             : linux
type                 : Linux
cpus                 : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
cpus nb              : 8
freemem              : 23007592448
totalmem             : 31615844352
home                 : /home/jfolpf
===============================================================================
--- PM2 list -----------------------------------------------
┌─────┬───────────────────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name                          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼───────────────────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 2   │ autocosts.prod                │ default     │ 6.3.50  │ cluster │ 16392    │ 118m   │ 8    │ online    │ 0.4%     │ 190.6mb  │ jfolpf   │ disabled │
│ 3   │ autocosts.prod                │ default     │ 6.3.50  │ cluster │ 16398    │ 118m   │ 8    │ online    │ 0.8%     │ 188.0mb  │ jfolpf   │ disabled │
│ 4   │ autocosts.prod                │ default     │ 6.3.50  │ cluster │ 16418    │ 118m   │ 8    │ online    │ 0.4%     │ 192.3mb  │ jfolpf   │ disabled │
│ 5   │ autocosts.prod                │ default     │ 6.3.50  │ cluster │ 16425    │ 118m   │ 8    │ online    │ 1.2%     │ 190.6mb  │ jfolpf   │ disabled │
│ 0   │ bike-reporter                 │ default     │ 1.2.1   │ cluster │ 3475     │ 44h    │ 0    │ online    │ 0%       │ 45.8mb   │ jfolpf   │ disabled │
│ 1   │ bike-reporter                 │ default     │ 1.2.1   │ cluster │ 3489     │ 44h    │ 0    │ online    │ 0%       │ 44.8mb   │ jfolpf   │ disabled │
│ 6   │ form-for-parking-violation    │ default     │ N/A     │ cluster │ 4250     │ 44h    │ 0    │ online    │ 0.8%     │ 69.6mb   │ jfolpf   │ disabled │
│ 7   │ form-for-parking-violation    │ default     │ N/A     │ cluster │ 4257     │ 44h    │ 0    │ online    │ 0.4%     │ 59.3mb   │ jfolpf   │ disabled │
│ 18  │ geoapi.pt                     │ default     │ 1.0.4   │ cluster │ 22281    │ 44m    │ 3    │ online    │ 2.1%     │ 2.5gb    │ jfolpf   │ disabled │
│ 19  │ geoapi.pt                     │ default     │ 1.0.4   │ cluster │ 22327    │ 42m    │ 3    │ online    │ 169.8%   │ 2.6gb    │ jfolpf   │ disabled │
│ 8   │ in-my-district                │ default     │ 1.0.0   │ cluster │ 4264     │ 44h    │ 0    │ online    │ 0%       │ 42.9mb   │ jfolpf   │ disabled │
│ 9   │ in-my-district                │ default     │ 1.0.0   │ cluster │ 4265     │ 44h    │ 0    │ online    │ 0.4%     │ 50.5mb   │ jfolpf   │ disabled │
└─────┴───────────────────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
===============================================================================
--- Daemon logs --------------------------------------------
/home/jfolpf/.pm2/pm2.log last 20 lines:
PM2        | 2024-06-07T19:44:56: PM2 log: App [geoapi.pt:18] online
PM2        | 2024-06-07T19:45:46: PM2 log: Stopping app:geoapi.pt id:_old_18
PM2        | 2024-06-07T19:45:46: PM2 log: pid=17718 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:45:46: PM2 log: pid=17718 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:45:46: PM2 log: pid=17718 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:45:46: PM2 log: pid=17718 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:45:46: PM2 log: App name:geoapi.pt id:_old_18 disconnected
PM2        | 2024-06-07T19:45:46: PM2 log: App [geoapi.pt:_old_18] exited with code [0] via signal [SIGINT]
PM2        | 2024-06-07T19:45:46: PM2 log: pid=17718 msg=process killed
PM2        | 2024-06-07T19:45:46: PM2 log: App [geoapi.pt:19] starting in -cluster mode-
PM2        | 2024-06-07T19:46:36: PM2 log: App [geoapi.pt:19] online
PM2        | 2024-06-07T19:47:26: PM2 log: Stopping app:geoapi.pt id:_old_19
PM2        | 2024-06-07T19:47:27: PM2 log: pid=17818 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:47:27: PM2 log: pid=17818 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:47:27: PM2 log: pid=17818 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:47:27: PM2 log: pid=17818 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:47:27: PM2 log: pid=17818 msg=failed to kill - retrying in 100ms
PM2        | 2024-06-07T19:47:27: PM2 log: App name:geoapi.pt id:_old_19 disconnected
PM2        | 2024-06-07T19:47:27: PM2 log: App [geoapi.pt:_old_19] exited with code [0] via signal [SIGINT]
PM2        | 2024-06-07T19:47:27: PM2 log: pid=17818 msg=process killed
Ionys320 commented 3 months ago

Hi, The daemon is running as root, meaning it creates files as root. That's why. You should use a dedicated user, like dev or something like that!