run

package module
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2023 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

Overview

Package run

Package run

Package run

Package run

Package run

Package run

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)

	// 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