Link Search Menu Expand Document

ПроцессОс

Стд::СредаИсполнения::ПроцессОс
Базовые типы: Объект
Доступность: Сервер

Иерархия типа

graph TD;
ПроцессОс["ПроцессОс"]-->Объект["Объект"];

Объект для работы с внешними процессами.

Сравнение ссылочное


Конструкторы

ПроцессОс

ПроцессОс(
  КомандаЗапуска: Строка,
  СоединитьПотокиОшибокИВывода: Булево = Истина)
Доступность: Сервер
Перегрузка:
ПроцессОс(КомандаЗапуска: Строка, Аргументы: ЧитаемыйМассив<Объект>, СоединитьПотокиОшибокИВывода: Булево = Истина)

Создает процесс с указанной командой запуска КомандаЗапуска и признаком объединения потоков вывода и ошибок СоединитьПотокиОшибокИВывода. Созданный процесс не запускается.


ПроцессОс

ПроцессОс(
  КомандаЗапуска: Строка,
  Аргументы: ЧитаемыйМассив<Объект>,
  СоединитьПотокиОшибокИВывода: Булево = Истина)
Доступность: Сервер
Перегрузка:
ПроцессОс(КомандаЗапуска: Строка, СоединитьПотокиОшибокИВывода: Булево = Истина)

Свойства

ПотокиОшибокИВыводаСоединены

ТолькоЧтение ПотокиОшибокИВыводаСоединены: Булево
Доступность: Сервер

Определяет, соединены ли потоки ошибок и вывода:

  • Истина - ошибки пишутся в поток вывода.
  • Ложь - ошибки пишутся в поток ошибок.

Методы

Живой

Живой(): Булево
Доступность: Сервер

Проверяет, жив ли запущенный процесс.


Запустить

Запустить(Каталог: Строка? = Неопределено)
Доступность: Сервер

Запускает созданный процесс или конвейер процессов.

  • Каталог - рабочий каталог запускаемого и дочерних процессов.

ОжидатьЗавершения

ОжидатьЗавершения(Длительность: Длительность): Булево
Доступность: Сервер

Ожидает завершения выполнения одного из условий:

  • внешний процесс завершился,
  • прошло заданное количество секунд Длительность (если задано).

Возвращает Ложь, если внешний процесс не завершился за указанное время Длительность.


Остановить

Остановить()
Доступность: Сервер

Останавливает созданный процесс.


ПередатьВыводВ

ПередатьВыводВ(
  КомандаЗапуска: Строка,
  Аргументы: ЧитаемыйМассив<Объект>
): ПроцессОс
Доступность: Сервер

ПолучитьPid

ПолучитьPid(): Число?
Доступность: Сервер

Возвращает идентификатор процесса в операционной системе, либо Неопределено, если получение PID‘а невозможно.


ПолучитьКодВозврата

ПолучитьКодВозврата(): Число?
Доступность: Сервер

Возвращает код возврата от внешнего процесса. Код 0 считается нормальным завершением внешнего процесса.


ПолучитьПотокВвода

ПолучитьПотокВвода(): ПотокЗаписи
Доступность: Сервер

Чтобы процесс перестал ожидать входные данные, закройте полученный поток ввода.

Возвращает ПотокЗаписи для передачи входных данных в ПроцессОс.

Исключения

ИсключениеНедопустимоеСостояние - если метод вызван до запуска процесса.

Примеры

метод Grep(Вход: Строка, Фильтр: Строка): Строка
    // Аналог команды grep в Windows. Требует входных данных
    пер Процесс = новый ПроцессОс("cmd.exe", ["/c", "findstr %Фильтр"])

    // Указать входные данные можно только после старта процесса
    Процесс.Запустить()
    пер Поток = Процесс.ПолучитьПотокВвода()
    Поток.Записать(Вход)
    
    // Даем понять, что входных данных процесс может больше не ожидать.
    Поток.Закрыть()

    возврат Процесс.ПолучитьПотокВывода().ПрочитатьКакСтроку()
;

ПолучитьПотокВывода

ПолучитьПотокВывода(): ПотокЧтения
Доступность: Сервер
  • Для передачи вывода одного процесса в другой используйте возможности конвейера (см. ПередатьВыводВ()).
  • Не требует закрытия.

Возвращает выходной поток из внешнего процесса. Используется для получения результата от процесса. В поток по умолчанию также пишутся ошибки, произошедшие во время работы процесса.

Для получения данных всего потока вывода, нужно дождаться завершения выполнения процесса (метод ОжидатьЗавершения(...)).

Исключения

ИсключениеНедопустимоеСостояние - если метод вызван до запуска процесса.


ПолучитьПотокОшибок

ПолучитьПотокОшибок(): ПотокЧтения
Доступность: Сервер

Не требует закрытия.

Возвращает поток ошибок процесса. Если потоки ошибок и вывода соединены, будет возвращен пустой поток.

Для получения данных всего потока вывода, нужно дождаться завершения выполнения процесса (метод ОжидатьЗавершения(...)).

Исключения

ИсключениеНедопустимоеСостояние - если метод вызван до запуска процесса.


Список унаследованных методов

Объект