Published 2024-10-20

Система моніторингу PMon має потужний інструмент для автоматизації завдань — Worker. Цей модуль дозволяє створювати процеси CRON, які можуть керуватися на рівні операційної системи, забезпечуючи можливість запуску, зупинки та перезавантаження. У цій статті ми розглянемо, як налаштувати CRON за допомогою systemd на вашій системі.
Для початку потрібно створити конфігураційний файл для служби cronpon.service. Виконайте команду:
sudo nano /etc/systemd/system/cronpon.service
Додайте наступний вміст у файл:
[Unit]Description=Pmon Worker Wants=cronpon.timer [Service] Type=simple ExecStart=/usr/bin/php /var/www/html/cron.php User=www-data Group=www-data WorkingDirectory=/var/www/html RestartSec=5 [Install] WantedBy=multi-user.target
Цей конфігураційний файл описує службу, яка виконує скрипт cron.php у заданому каталозі.
Далі створимо файл таймера для автоматичного запуску служби cronpon.service кожні 10 секунд:
sudo nano /etc/systemd/system/cronpon.timer
Додайте наступний вміст у файл:
[Unit]Description=Run project-worker every 10 seconds Requires=cronpon.service [Timer] Unit=cronpon.service OnCalendar=*:*:0/10 [Install] WantedBy=timers.target
Цей таймер забезпечить запуск вашого скрипта кожні 10 секунд.
Крім служби CronPon, ми також налаштуємо службу для обробки завдань з черги Redis:
sudo nano /etc/systemd/system/worker.service
Додайте наступний вміст у файл:
[Unit]Description=Worker for processing tasks from Redis queue After=network.target [Service] ExecStart=/usr/bin/php /var/www/html/worker.php WorkingDirectory=/var/www/html Restart=always User=www-data Group=www-data RestartSec=5 StandardOutput=journal StandardError=inherit [Install] WantedBy=multi-user.target
Ця служба забезпечить виконання скрипта worker.php для обробки завдань.
Після внесення всіх змін збережіть файли і перезавантажте конфігурацію systemd:
sudo systemctl daemon-reload
Тепер активуйте та запустіть служби, щоб почати їх роботу:
sudo systemctl enable cronpon.servicesudo systemctl start cronpon.service sudo systemctl enable worker sudo systemctl start worker
Щоб перевірити статус служби CronPon, виконайте команду:
systemctl status worker
Ця команда покаже, чи працює служба належним чином.