54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
# Qini
|
|
|
|
**Легковесный init для контейнеров**, который управляет несколькими процессами, связывая их `stdin/stdout` и гарантируя остановку всех процессов, если один из них завершается.
|
|
|
|
**Идеально для Docker-контейнеров**, чтобы избежать "висящих" процессов и обеспечить корректное завершение работы.
|
|
|
|
---
|
|
|
|
## Особенности
|
|
|
|
**Автоматическое завершение всех процессов**, если один из них остановлен
|
|
**Перенаправление stdin/stdout** между процессами
|
|
**Простая конфигурация** в формате JSON
|
|
**Минималистичный и быстрый** (написан на Go)
|
|
**Простая сборка** через `make`
|
|
|
|
---
|
|
|
|
## Установка
|
|
|
|
### Сборка из исходников
|
|
```sh
|
|
git clone https://gitlab.stageoffice.ru/UCS-ENV/qini
|
|
cd qini
|
|
make
|
|
```
|
|
|
|
---
|
|
|
|
## Конфиг
|
|
Простой пример конфига в котором необходимо указать процессы сверху вниз в той последовательности как они будут собраны в цепочку связывания stdin/stdout
|
|
|
|
```
|
|
{
|
|
"services": [
|
|
{
|
|
"cmd": "/bin/ls",
|
|
},
|
|
{
|
|
"cmd": "/bin/grep",
|
|
"args": ["main"]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Запуск
|
|
|
|
```
|
|
$ qini -c config.json
|
|
```
|