Интерфейс предоставляет базовое управление процессами. В основном, он используется модулем 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.