Skip to content

Commit

Permalink
Update Processes function to only add the exe path for nginx master p…
Browse files Browse the repository at this point in the history
…rocesses and to leave it empty for nginx worker processes (#216)
  • Loading branch information
dhurley authored Feb 23, 2023
1 parent ae36d73 commit 8fa9a62
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 54 deletions.
63 changes: 36 additions & 27 deletions src/core/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -430,45 +430,54 @@ func (env *EnvironmentType) Processes() (result []Process) {
return processList
}

seenPids := make(map[int32]bool)
nginxProcesses := make(map[int32]*process.Process)
for _, pid := range pids {
p, _ := process.NewProcess(pid)

name, _ := p.Name()

if name == "nginx" {
createTime, _ := p.CreateTime()
status, _ := p.Status()
running, _ := p.IsRunning()
user, _ := p.Username()
ppid, _ := p.Ppid()
cmd, _ := p.Cmdline()
exe, err := p.Exe()
nginxProcesses[pid] = p
}
}

for pid, process := range nginxProcesses {
name, _ := process.Name()
createTime, _ := process.CreateTime()
status, _ := process.Status()
running, _ := process.IsRunning()
user, _ := process.Username()
ppid, _ := process.Ppid()
cmd, _ := process.Cmdline()
isMaster := false

_, ok := nginxProcesses[ppid]
if !ok {
isMaster = true
}

var exe string
if isMaster {
exe, err = process.Exe()
if err != nil {
log.Errorf("Error reading exe information for process: %d error: %v", pid, err)
}
processList = append(processList, Process{
Pid: pid,
Name: name,
CreateTime: createTime, // Running time is probably different
Status: strings.Join(status, " "),
IsRunning: running,
Path: exe,
User: user,
ParentPid: ppid,
Command: cmd,
})
seenPids[pid] = true
}
}

for i := 0; i < len(processList); i++ {
item := &processList[i]
if seenPids[item.ParentPid] {
item.IsMaster = false
} else {
item.IsMaster = true
newProcess := Process{
Pid: pid,
Name: name,
CreateTime: createTime, // Running time is probably different
Status: strings.Join(status, " "),
IsRunning: running,
Path: exe,
User: user,
ParentPid: ppid,
Command: cmd,
IsMaster: isMaster,
}

processList = append(processList, newProcess)
}

return processList
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 8fa9a62

Please sign in to comment.