Обзор: программа Env
Системная программа Env предназначена для установки параметров запуска и переменных окружения программ. Если программа Env включена в решение, то процессы, соединенные IPC-каналом с процессом Env, при своем запуске автоматически отправляют IPC-запросы этой программе и получают параметры запуска и переменные окружения.
Использование системной программы Env является устаревшим способом установки параметров запуска и переменных окружения программ. Установку параметров запуска и переменных окружения программ нужно выполнять через файл init.yaml.in или init.yaml.
Если значение параметра запуска или переменной окружения программы задано как через программу Env, так и через файл init.yaml.in или init.yaml, то будет применяться значение, заданное через программу Env.
Чтобы использовать программу Env в решении, необходимо:
- Разработать код программы
Env, используя макросы и функции из заголовочного файлаsysroot-*-kos/include/env/env.hиз состава KasperskyOS SDK. - Собрать исполняемый файл программы
Env, скомпоновав его с библиотекойenv_serverиз состава KasperskyOS SDK. - В init-описании указать, что необходимо запустить процесс
Envи соединить с ним другие процессы (Envпри этом является сервером). Имя IPC-канала задается макросомENV_SERVICE_NAME, определенным в заголовочном файлеenv.h. - Включить исполняемый файл
Envв образ решения.
Исходный код программы Env
В исходном коде программы Env используются следующие макросы и функции из заголовочного файла env.h:
ENV_REGISTER_ARGS(name,argarr)– установить параметры запускаargarrдля программы, которая будет исполняться в контексте процесса с именемname.ENV_REGISTER_VARS(name,envarr)– установить переменные окруженияenvarrдля программы, которая будет исполняться в контексте процесса с именемname.ENV_REGISTER_PROGRAM_ENVIRONMENT(name,argarr,envarr)– установить параметры запускаargarrи переменные окруженияenvarrдля программы, которая будет исполняться в контексте процесса с именемname.envServerRun()– инициализировать серверную часть программыEnv, чтобы она могла отвечать на IPC-запросы.