Здесь приведены примеры init-описаний, демонстрирующие различные аспекты запуска процессов.
Система сборки может автоматически создавать init-описание на основе шаблона init.yaml.in
.
Запуск клиента и сервера и создание IPC-канала между ними
В этом примере будут запущены процесс класса Client
и процесс класса Server
. Имена процессов не указаны, поэтому они будут совпадать с именами классов процессов. Имена исполняемых файлов также не указаны, они также будут совпадать с именами классов процессов. Процессы будут соединены IPC-каналом с именем server_connection
.
init.yaml
entities:
- name: Client
connections:
- target: Server
id: server_connection
- name: Server
Запуск процессов из заданных исполняемых файлов
В этом примере будут запущены процесс класса Client
из исполняемого файла с именем cl
, процесс класса ClientServer
из исполняемого файла с именем csr
и процесс класса MainServer
из исполняемого файла с именем msr
. Имена процессов не указаны, поэтому они будут совпадать с именами классов процессов.
init.yaml
entities:
- name: Client
path: cl
- name: ClientServer
path: csr
- name: MainServer
path: msr
Запуск двух процессов из одного исполняемого файла
В этом примере будут запущены процесс класса Client
из исполняемого файла с именем Client
, а также два процесса классов MainServer
и BkServer
из исполняемого файла с именем srv
. Имена процессов не указаны, поэтому они будут совпадать с именами классов процессов.
init.yaml
entities:
- name: Client
- name: MainServer
path: srv
- name: BkServer
path: srv
Запуск двух серверов одного класса и клиента и создание IPC-каналов между клиентом и серверами
В этом примере будут запущены процесс класса Client
(с именем Client
) и два процесса класса Server
с именами UserServer
и PrivilegedServer
. Клиент будет соединен с серверами IPC-каналами с именами server_connection_us
и server_connection_ps
. Имена исполняемых файлов не указаны, поэтому они будут совпадать с именами классов процессов.
init.yaml
entities:
- name: Client
connections:
- id: server_connection_us
target: UserServer
- id: server_connection_ps
target: PrivilegedServer
- task: UserServer
name: Server
- task: PrivilegedServer
name: Server
Установка параметров запуска и переменных окружения программ
В этом примере будут запущены процесс класса VfsFirst
(с именем VfsFirst
) и процесс класса VfsSecond
(с именем VfsSecond
). Программа, которая будет исполняться в контексте процесса VfsFirst
, будет запущена с параметром -f /etc/fstab
, а также получит переменную окружения ROOTFS
со значением ramdisk0,0 / ext2 0
и переменную окружения UNMAP_ROMFS
со значением 1
. Программа, которая будет исполняться в контексте процесса VfsSecond
, будет запущена с параметром -l devfs /dev devfs 0
. Имена исполняемых файлов не указаны, поэтому они будут совпадать с именами классов процессов.
init.yaml
entities:
- name: VfsFirst
args:
- -f
- /etc/fstab
env:
ROOTFS: ramdisk0,0 / ext2 0
UNMAP_ROMFS: 1
- name: VfsSecond
args:
- -l
- devfs /dev devfs 0
В начало