Апостол - это платформа для создания системного программного обеспечения, исходные коды на C++.
auto/ содержит файлы со скриптами
cmake-modules/ содержит файлы с модулями CMake
conf/ содержит файлы с настройками
src/ содержит файлы с исходным кодом
├─app/ содержит файлы с исходным кодом: Apostol
├─core/ содержит файлы с исходным кодом: Apostol Core
├─lib/ содержит файлы с исходным кодом библиотек
| └─delphi/ содержит файлы с исходным кодом библиотеки*: Delphi classes for C++
├─workers/ содержит файлы с исходным кодом дополнений (модулей)
| └─WebServer/ содержит файлы с исходным кодом дополнения: Веб-сервер
├─helpers/ содержит файлы с исходным кодом дополнений (модулей)
www/ содержит файлы с Веб-сайтом
Платформа написана на языке программирования C++, имеет модульную конструкцию и включает в себя встроенную поддержку СУБД PostgreSQL.
Для установки Апостол Вам потребуется:
- Компилятор C++;
- CMake или интегрированная среда разработки (IDE) с поддержкой CMake;
- Библиотека libpq-dev (libraries and headers for C language frontend development);
- Библиотека postgresql-server-dev-12 (libraries and headers for C language backend development).
- Библиотека libdelphi (Delphi classes for C++);
- Библиотека apostol-core (Apostol Core C++);
ВНИМАНИЕ: Устанавливать libdelphi
не нужно, достаточно скачать и разместить в каталоге src/lib
проекта.
Для того чтобы установить компилятор C++ и необходимые библиотеки на Ubuntu выполните:
$ sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev make cmake gcc g++
Подробное описание установки C++, CMake, IDE и иных компонентов необходимых для сборки проекта не входит в данное руководство.
Для того чтобы установить PostgreSQL воспользуйтесь инструкцией по этой ссылке.
Параметр --make
необходим для установки базы данных в первый раз. Далее установочный скрипт можно запускать или без параметров или с параметром --install
.
Для установки Апостол (без Git) необходимо:
- Скачать Апостол по ссылке;
- Распаковать;
- Скачать libdelphi по ссылке;
- Распаковать в
src/lib/delphi
; - Скачать apostol-core по ссылке;
- Распаковать в
src/core
; - Настроить
CMakeLists.txt
(по необходимости); - Собрать и скомпилировать (см. ниже).
Для установки Апостол с помощью Git выполните:
$ git clone https://github.com/ufocomp/apostol.git
Чтобы добавить libdelphi в проект с помощью Git выполните:
$ cd apostol/src/lib
$ git clone https://github.com/ufocomp/libdelphi.git delphi
$ cd ../../../
Чтобы добавить apostol-core в проект с помощью Git выполните:
$ cd apostol/src
$ git clone https://github.com/ufocomp/apostol-core.git core
$ cd ../../
$ cd apostol
$ cmake -DCMAKE_BUILD_TYPE=Release . -B cmake-build-release
$ cd cmake-build-release
$ make
$ sudo make install
По умолчанию бинарный файл apostol
будет установлен в:
/usr/sbin
Файл конфигурации и необходимые для работы файлы, в зависимости от варианта установки, будут расположены в:
/etc/apostol
или
~/apostol
apostol
- это системная служба (демон) Linux.
Для управления apostol
используйте стандартные команды управления службами.
Для запуска apostol
выполните:
$ sudo service apostol start
Для проверки статуса выполните:
$ sudo service apostol status
Результат должен быть примерно таким:
● apostol.service - LSB: starts the apostol web servcie
Loaded: loaded (/etc/init.d/apostol; generated; vendor preset: enabled)
Active: active (running) since Thu 2019-08-15 14:11:34 BST; 1h 1min ago
Docs: man:systemd-sysv-generator(8)
Process: 16465 ExecStop=/etc/init.d/apostol stop (code=exited, status=0/SUCCESS)
Process: 16509 ExecStart=/etc/init.d/apostol start (code=exited, status=0/SUCCESS)
Tasks: 3 (limit: 4915)
CGroup: /system.slice/apostol.service
├─16520 apostol: master process /usr/sbin/abc
└─16521 apostol: worker process
Управлять apostol
можно с помощью сигналов.
Номер главного процесса по умолчанию записывается в файл /run/apostol.pid
.
Изменить имя этого файла можно при конфигурации сборки или же в apostol.conf
секция [daemon]
ключ pid
.
Главный процесс поддерживает следующие сигналы:
Сигнал | Действие |
---|---|
TERM, INT | быстрое завершение |
QUIT | плавное завершение |
HUP | изменение конфигурации, запуск новых рабочих процессов с новой конфигурацией, плавное завершение старых рабочих процессов |
WINCH | плавное завершение рабочих процессов |
Управлять рабочими процессами по отдельности не нужно. Тем не менее, они тоже поддерживают некоторые сигналы:
Сигнал | Действие |
---|---|
TERM, INT | быстрое завершение |
QUIT | плавное завершение |