pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/pid/pid_freebsd.go (about)

     1  package pid
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  //                                                                                    //
     5  //                         Copyright (c) 2022 ESSENTIAL KAOS                          //
     6  //      Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>     //
     7  //                                                                                    //
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  import (
    11  	"os/exec"
    12  	"strconv"
    13  )
    14  
    15  // ////////////////////////////////////////////////////////////////////////////////// //
    16  
    17  // IsWorks returns true if process with PID from PID file is works
    18  func IsWorks(name string) bool {
    19  	pid := Get(name)
    20  
    21  	if pid == -1 {
    22  		return false
    23  	}
    24  
    25  	return IsProcessWorks(pid)
    26  }
    27  
    28  // IsProcessWorks returns true if process with given PID is works
    29  func IsProcessWorks(pid int) bool {
    30  	return exec.Command("/usr/bin/procstat", strconv.Itoa(pid)).Run() == nil
    31  }