Documentation ¶
Index ¶
- Constants
- Variables
- func DiscoverChildProcesses(pid int) ([]int, error)
- func ExecCmdBgWithSudoAndCtx(ctx context.Context, command string) (int, chan error)
- func ExecPinnedCmdWithTimeout(command string, timeout time.Duration) (int, error)
- func IsSudoCmdAvailableForThisUser() bool
- func ParseCmd(fullCmd string) (string, []string, error)
- func PinProccessToCPU(id ...int)
- func SudoKillProcess(pid int, force bool) error
- type RunningTracker
- type TrackerStatus
Constants ¶
const ( SIGTERM = "-15" SIGKILL = "-9" )
const CPUForTests = 0 // CPU to pin test processes to
Variables ¶
var ( TrackerBinary = "../../dist/tracker" TrackerHostname = "localhost" TrackerPort = 3366 )
Functions ¶
func DiscoverChildProcesses ¶
DiscoverChildProcesses discovers all child processes of a given PID.
func ExecCmdBgWithSudoAndCtx ¶
ExecCmdBgWithSudoAndCtx executes a command with sudo in the background, and returns the PID of the process and a channel to wait for the command to exit (Check RunningTracker object about how to use this).
func ExecPinnedCmdWithTimeout ¶
ExecPinnedCmdWithTimeout executes a cmd with a timeout and returns the PID of the process.
func IsSudoCmdAvailableForThisUser ¶
func IsSudoCmdAvailableForThisUser() bool
IsSudoCmdAvailableForThisUser checks if the sudo command is available for the current user.
func PinProccessToCPU ¶
func PinProccessToCPU(id ...int)
PinProccessToCPU pins the current process to a specific CPU
func SudoKillProcess ¶
SudoKillProcess kills a process with sudo.
Types ¶
type RunningTracker ¶
type RunningTracker struct {
// contains filtered or unexported fields
}
RunningTracker is a wrapper for a running tracker process as a regular process.
func NewRunningTracker ¶
func NewRunningTracker(givenCtx context.Context, cmdLine string) *RunningTracker
NewRunningTracker creates a new RunningTracker instance.
func (*RunningTracker) IsReady ¶
func (r *RunningTracker) IsReady() bool
IsReady checks if the tracker process is ready.
func (*RunningTracker) Start ¶
func (r *RunningTracker) Start() (<-chan TrackerStatus, error)
Start starts the tracker process.
type TrackerStatus ¶
type TrackerStatus int
const ( TrackerStarted TrackerStatus = iota TrackerFailed TrackerTimedout TrackerAlreadyRunning )