gitea: Index | Files

package process

import ""


Package Files



var (
    // ErrExecTimeout represent a timeout error
    ErrExecTimeout = errors.New("Process execution timeout")

type Manager Uses

type Manager struct {
    Processes map[int64]*Process
    // contains filtered or unexported fields

Manager knows about all processes and counts PIDs.

func GetManager Uses

func GetManager() *Manager

GetManager returns a Manager and initializes one as singleton if there's none yet

func (*Manager) Add Uses

func (pm *Manager) Add(description string, cmd *exec.Cmd) int64

Add a process to the ProcessManager and returns its PID.

func (*Manager) Exec Uses

func (pm *Manager) Exec(desc, cmdName string, args ...string) (string, string, error)

Exec a command and use the default timeout.

func (*Manager) ExecDir Uses

func (pm *Manager) ExecDir(timeout time.Duration, dir, desc, cmdName string, args ...string) (string, string, error)

ExecDir a command and use the default timeout.

func (*Manager) ExecDirEnv Uses

func (pm *Manager) ExecDirEnv(timeout time.Duration, dir, desc string, env []string, cmdName string, args ...string) (string, string, error)

ExecDirEnv runs a command in given path and environment variables, and waits for its completion up to the given timeout (or DefaultTimeout if -1 is given). Returns its complete stdout and stderr outputs and an error, if any (including timeout)

func (*Manager) ExecTimeout Uses

func (pm *Manager) ExecTimeout(timeout time.Duration, desc, cmdName string, args ...string) (string, string, error)

ExecTimeout a command and use a specific timeout duration.

func (*Manager) Kill Uses

func (pm *Manager) Kill(pid int64) error

Kill and remove a process from list.

func (*Manager) Remove Uses

func (pm *Manager) Remove(pid int64)

Remove a process from the ProcessManager.

type Process Uses

type Process struct {
    PID         int64 // Process ID, not system one.
    Description string
    Start       time.Time
    Cmd         *exec.Cmd

Process represents a working process inherit from Gogs.

Package process imports 7 packages (graph) and is imported by 16 packages. Updated 2019-03-26. Refresh now. Tools for package owners.