Интерфейс предоставляет базовое управление процессами. В основном, он используется модулем io
для создания отдельного индивидуального ввода/вывода каждой программы.
process.load(path:string[, env:table[, init:function[, name:string]]]):coroutine
Загружает Lua скрипт по заданному абсолютному пути и запускает его как процесс. Он будет запущен в своем отдельном окружении, чтобы не возникла путаница с глобальным окружением вызывающей программы.
Процесс получит доступ ко всему заданному окружению (параметр env:table
) или к окружению по умолчанию (если параметр был не задан).
Если задан параметр-функция init
, она будет вызвана в первую очередь после запуска процесса, прежде запуска самого скрипта.
Параметр name
задает название процесса, которое потом может быть получено функцией process.running
.
process.running([level: number]): string, table, string
Возвращает путь к текущей запущенной программе (т.е. последней, которая была запущена функцией process.load
).
Параметр level
по желанию может использоваться для доступа к родительскому процессу. По умолчанию этот параметр равен 1 (текущая программа). Значение 2 будет означать родителя текущей программы (т.е. ту программу, которая вызвала process.load
, чтобы запустить текущую) и т.д.
Второе возвращаемое значение — окружение процесса.
Третье возвращаемое значение — это название процесса (т.е. параметр name
функции process.load
). Для программ запущенных шеллом, это будет команда которая ее запустила.
Например: для программы запущенной командой ls -l
, первое полученное значение будет ls
, а третье — ls -l
.