mirror of
https://github.com/OneUptime/oneuptime
synced 2024-11-21 22:59:07 +00:00
41 lines
845 B
Go
41 lines
845 B
Go
package utils
|
|
|
|
import (
|
|
"log/slog"
|
|
"oneuptime-infrastructure-agent/model"
|
|
|
|
"github.com/shirou/gopsutil/v3/process"
|
|
)
|
|
|
|
// getServerProcesses retrieves the list of server processes
|
|
func GetServerProcesses() []*model.ServerProcess {
|
|
var serverProcesses []*model.ServerProcess
|
|
|
|
// Fetch all processes
|
|
processList, err := process.Processes()
|
|
if err != nil {
|
|
slog.Error("Failed to fetch process list", err)
|
|
return nil
|
|
}
|
|
|
|
// Iterate over all processes and collect details
|
|
for _, p := range processList {
|
|
name, err := p.Name()
|
|
if err != nil {
|
|
continue // skip processes where details cannot be retrieved
|
|
}
|
|
cmdline, err := p.Cmdline()
|
|
if err != nil {
|
|
continue
|
|
}
|
|
|
|
serverProcesses = append(serverProcesses, &model.ServerProcess{
|
|
Pid: p.Pid,
|
|
Name: name,
|
|
Command: cmdline,
|
|
})
|
|
}
|
|
|
|
return serverProcesses
|
|
}
|