github.com/gofiber/fiber/v2@v2.47.0/internal/gopsutil/load/load_solaris.go (about)

     1  //go:build solaris
     2  // +build solaris
     3  
     4  package load
     5  
     6  import (
     7  	"context"
     8  	"os/exec"
     9  	"strings"
    10  
    11  	"github.com/gofiber/fiber/v2/internal/gopsutil/common"
    12  )
    13  
    14  func Avg() (*AvgStat, error) {
    15  	return AvgWithContext(context.Background())
    16  }
    17  
    18  func AvgWithContext(ctx context.Context) (*AvgStat, error) {
    19  	return nil, common.ErrNotImplementedError
    20  }
    21  
    22  func Misc() (*MiscStat, error) {
    23  	return MiscWithContext(context.Background())
    24  }
    25  
    26  func MiscWithContext(ctx context.Context) (*MiscStat, error) {
    27  	bin, err := exec.LookPath("ps")
    28  	if err != nil {
    29  		return nil, err
    30  	}
    31  	out, err := invoke.CommandWithContext(ctx, bin, "-efo", "s")
    32  	if err != nil {
    33  		return nil, err
    34  	}
    35  	lines := strings.Split(string(out), "\n")
    36  
    37  	ret := MiscStat{}
    38  	for _, l := range lines {
    39  		if l == "O" {
    40  			ret.ProcsRunning++
    41  		}
    42  	}
    43  
    44  	return &ret, nil
    45  }