Для примера далее рассматривается скрипт "/home/korolev/autocall_process.py"
Скрипт Python должен работать в бесконечном цикле примерно так:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import subprocess
from psycopg2 import sql
from datetime import datetime, time
<... функция work() и другие ...>
def main():
while True:
work()
# Пауза перед следующей итерацией
time.sleep(CHECK_INTERVAL)
if __name__ == "__main__":
main()
Скрипт Python должен работать в бесконечном цикле примерно так:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import subprocess
from psycopg2 import sql
from datetime import datetime, time
<... функция work() и другие ...>
def main():
while True:
work()
# Пауза перед следующей итерацией
time.sleep(CHECK_INTERVAL)
if __name__ == "__main__":
main()
После отладки, делаем сам скрипт исполняемым:
# chmod +x /home/korolev/autocall_process.py
Создаем unit системы systemd:
# nano /etc/systemd/system/autocall.service
[Unit]
Description=AutoCall Dialer Service Freeswitch
After=network.target postgresql.service freeswitch.service
Wants=postgresql.service freeswitch.service
[Service]
Type=simple
User=korolev
Group=korolev
WorkingDirectory=/home/korolev
Environment=PYTHONUNBUFFERED=1
ExecStart=/usr/bin/python3 /home/korolev/autocall_process.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=autocall
[Install]
WantedBy=multi-user.target
# chmod +x /home/korolev/autocall_process.py
Создаем unit системы systemd:
# nano /etc/systemd/system/autocall.service
[Unit]
Description=AutoCall Dialer Service Freeswitch
After=network.target postgresql.service freeswitch.service
Wants=postgresql.service freeswitch.service
[Service]
Type=simple
User=korolev
Group=korolev
WorkingDirectory=/home/korolev
Environment=PYTHONUNBUFFERED=1
ExecStart=/usr/bin/python3 /home/korolev/autocall_process.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=autocall
[Install]
WantedBy=multi-user.target
Так как скрипт работает от пользователя korolev, но должен обращаться к ПО Freeswitch, работающее под пользователем freeswitch, добавляем пользователя korolev в группу freeswitch
# usermod -aG freeswitch korolev
# usermod -aG freeswitch korolev
Запускаемся:
# systemctl daemon-reload
# systemctl start autocall.service
# systemctl enable autocall.service
# systemctl daemon-reload
# systemctl start autocall.service
# systemctl enable autocall.service
Следить за логами теперь можно через системный журнал так:
# journalctl -u autocall.service -f
# journalctl -u autocall.service -f
Комментариев нет:
Отправить комментарий