getallpids.go 505 B

123456789101112131415161718192021222324252627
  1. package cgroups
  2. import (
  3. "io/fs"
  4. "path/filepath"
  5. )
  6. // GetAllPids returns all pids from the cgroup identified by path, and all its
  7. // sub-cgroups.
  8. func GetAllPids(path string) ([]int, error) {
  9. var pids []int
  10. err := filepath.WalkDir(path, func(p string, d fs.DirEntry, iErr error) error {
  11. if iErr != nil {
  12. return iErr
  13. }
  14. if !d.IsDir() {
  15. return nil
  16. }
  17. cPids, err := readProcsFile(p)
  18. if err != nil {
  19. return err
  20. }
  21. pids = append(pids, cPids...)
  22. return nil
  23. })
  24. return pids, err
  25. }