Published 2024-12-25

Залежності та налаштування середовища:
Для роботи програми потрібно, щоб були встановлені наступні бібліотеки:
Встановлення залежностей:
Hiredis:
Для встановлення hiredis на Debian/Ubuntu системах:
sudo apt-get updatesudo apt-get install libhiredis-dev
nlohmann/json:
Завантажте заголовочний файл json.hpp і помістіть його в директорію /usr/local/include:
wget https://github.com/nlohmann/json/releases/latest/download/json.hpp -O /usr/local/include/json.hpp
Redis-сервер:
Для встановлення Redis на Debian/Ubuntu:
sudo apt-get install redis-server
Після встановлення, запустіть Redis:
sudo systemctl start redissudo systemctl enable redissudo apt install g++sudo chmod +x /usr/bin/task_processor
Компіляція програми:
Збережіть код програми в файл, наприклад, task_processor.cpp. Щоб скомпілювати програму, використовуйте наступну команду:
g++ -o task_processor /usr/bin/task_processor.cpp -std=c++17 -lhiredis -lpthread
Ця команда скомпілює ваш C++ код в виконуваний файл task_processor.
Створення системного сервісу для запуску програми:
Для автоматичного запуску програми як системного сервісу, необхідно створити юніт-сервіс у системі systemd.
sudo nano /etc/systemd/system/task_processor.service
У редакторі вставте наступне (потрібно змінити на свої директорії):
[Unit]Description=Task Processor Service After=network.target redis.service [Service] ExecStart=/usr/bin/task_processor WorkingDirectory=/var/www/html Restart=always User=www-data Group=www-data RestartSec=5 StandardOutput=syslog StandardError=syslog SyslogIdentifier=task_processor Environment=REDIS_HOST=127.0.0.1 Environment=REDIS_PORT=6379 [Install] WantedBy=multi-user.target
Перезавантаження systemd та запуск сервісу:
Після того, як ви збережете зміни в системному файлі сервісу, необхідно перезавантажити systemd для того, щоб він побачив новий сервіс:
sudo systemctl daemon-reload
Далі, щоб запустити сервіс:
sudo systemctl start task_processor
Щоб автоматично запускати сервіс при кожному перезавантаженні:
sudo systemctl enable task_processor
Перевірка роботи сервісу:
Ви можете перевірити статус сервісу за допомогою команди:
sudo systemctl status task_processor
Для перегляду журналу сервісу (стандартний висновок та помилки):
journalctl -u task_processor