Задать вопрос
@kalashnikofff

Как правильно создать своего демона в centos 7 на lua?

Добрый день.
Есть скрипт на lua, который в подключается к серваку и в цикле, пока есть соединение ждет event и уже делает необходимую обработку.
Примерно вот так
#!/usr/local/bin/lua

local con = Connetct(url, login, pass);

if con:connected() then
   #обработка
end


Для того, чтобы запустить этот скрипт в качестве демона использую systemd. Получился вот такой конфиг
[Unit]
Description=lvCallCenter
After=mysql.service
Requires=mysql.service

[Service]
Type=forking
PIDFile=pid
WorkingDirectory=dir

User=leadvertex
Group=leadvertex

Environment=RACK_ENV=production

OOMScoreAdjust=-1000

ExecStart=/usr/local/bin/lua script.lua
Restart=always
TimeoutSec=300

[Install]
WantedBy=multi-user.target

Запускается он немного не так, как хотелось бы, т.е. после запуска командой systemctl start myunit ничего не происходит, никакого вывода, что все запустилось и приходится жать ctrl+c, чтобы отменить.
Но демон появляется в процессах и все работает.

Но хотелось бы сделать, чтобы он нормально запускался.
Скорее всего проблема в потоках вывода, пробовал их переопределять не не помогло. Также думаю, что скрипт на lua как-то должен ответит systemd, что он запустился и работает.
Помогите, пожалуйста решить этот вопрос. Заранее благодарю за помощь.
  • Вопрос задан
  • 674 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@ipc_ngs
У вас указан "Type=forking", который используется для сервисов, которые сами себя запускают в фоне. Ваш скрипт этого не делает. Поэтому уберите "Type=forking", или замените его на умолчательное значение "Type=simple".
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@elcanner
Не спец в systemd и темболее в lua. Но "запускать демоны" мне всегда помогал такой костыль как screen :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы