run

package module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2024 License: MIT Imports: 14 Imported by: 0

README

Run


GoDoc Go Report Card Coverage Status

run

Библиотека golang предоставляющая более удобный интерфейс к стандартным пакетам go для решения задач связанных с запуском и взаимодействием с запущенными приложениями.


Подключение пакета.

  go get github.com/webnice/run

Использование пакета в приложении.

package main

import (
  "github.com/webnice/run"
)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Interface

type Interface interface {

	// StdInCh Канал с данными для потока STDIN. Канал должен быть закрыт там же где открывался.
	// Функция читает канал и передаёт процессу данные, до тех пор пока канал открыт и процесс запущен.
	StdInCh(ch <-chan []byte) Interface

	// StdIn Данные, отправляемые процессу в поток STDIN после запуска процесса.
	StdIn(buf []byte) Interface

	// StdOutCh Канал с данными полученными из процесса через поток STDOUT. Канал будет закрыт после завершения
	// процесса. Канал не создаётся, если функция не вызывалась.
	StdOutCh() (ret <-chan []byte)

	// StdOut Данные, полученные от процесса через поток STDOUT.
	StdOut() (ret []byte)

	// StdErrCh Канал с данными полученными из процесса через поток STDERR. Канал будет закрыт после завершения
	// процесса. Канал не создаётся, если функция не вызывалась.
	StdErrCh() (ret <-chan []byte)

	// StdErr Данные, полученные от процесса через поток STDERR.
	StdErr() (ret []byte)

	// WorkingDirectory Назначение директории выполнения приложения. По умолчанию - текущая директория.
	WorkingDirectory(dir string) Interface

	// Environment Переменные окружения, устанавливаемые для приложения. Переменные указываются как "КЛЮЧ=Значение".
	Environment(env ...string) Interface

	// Chroot Запускаемое приложение выполняется в режиме chroot в указанной директории.
	Chroot(dir string) Interface

	// Sudo Запускаемый процесс будет запущен от указанного пользователя и группы.
	// userID      - Идентификатор пользователя.
	// groupID     - Идентификатор группы.
	// noSetGroups - Флаг, указывающий не устанавливать дополнительные группы.
	// groups      - Массив идентификаторов дополнительных групп.
	Sudo(userID uint32, groupID uint32, noSetGroups bool, groups ...uint32) Interface

	// UserID Поиск идентификатора пользователя по названию пользователя.
	UserID(userName string) (ret uint32, err error)

	// GroupID Поиск идентификатора группы пользователя по названию группы.
	GroupID(groupName string) (ret uint32, err error)

	// Command Функция возвращает текущую запущенную команду.
	Command() (ret []string)

	// Debug Установка режима отладки.
	Debug(isDebug bool) Interface

	// Run Запуск приложения и возвращение из функции без ожидания завершения приложения.
	// Если передан контекст не равный nil, тогда прерывание через контекст завершает работу приложения аналогично
	// вызову функции Kill().
	Run(ctx context.Context, args ...string) Interface

	// RunWait Запуск приложения и ожидание завершения приложения.
	// Если передан контекст не равный nil, тогда прерывание через контекст завершает работу приложения аналогично
	// вызову функции Kill().
	RunWait(ctx context.Context, args ...string) (ret *os.ProcessState, err error)

	// Wait Ожидание завершения ранее запущенного приложения.
	Wait() (ret *os.ProcessState, err error)

	// LookPath Выполнение одноимённой утилиты exec.LookPath(), чтобы тыла под рукой,
	// Ошибку выполнения функции можно получить через Error().
	LookPath(proc string) (path string)

	// Pid Возвращает PID процесса. Если процесс не был запущен, возвращается -1.
	Pid() int

	// Signal Отправка сигнала ранее запущенному приложению.
	Signal(sig os.Signal) error

	// Kill Завершение ранее запущенного приложения.
	Kill() error

	// Release Освобождение всех ресурсов запущенного приложения.
	// Release необходимо выполнять только в случае если Wait() не работает.
	Release() error

	// Reset Завершение приложения, если оно было запущено, сброс всех настроек и подготовка пакета для
	// повторного использования.
	Reset() Interface

	// Error Ошибка, возникшая в функции не возвращающей ошибки.
	Error() error
}

Interface Интерфейс пакета.

func New

func New() Interface

New Конструктор объекта сущности пакета.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL