xchgeaxeax писал(а):Просто не понятно зачем вам это? Память течет?
Нужна такая возможность чтобы перезапускать раз в указанный период или по событию. Служб у меня несколько, работают с разными внешними объектами файлы, API, железки.
Иногда теряют коннект с объектами. причины всегда разные и с ними надо разбираться. Но службы уже используются и остановки не должны случаться.
В 99,9% простой перезапуск решает вопрос с этими подключениями.
Само собой это не основной метод, и в каждом случае приходится разбираться и реализовывать "защиту от дурака" чтобы обойти проблему или отработать возникшее исключение.
Но для этого достаточно логов, а службу надо перезапустить.
Т.е. временная заглушка, страховка от прекращения работы.
xchgeaxeax писал(а):Если надо программно перезапуститься, тогда просто выполните программно процедуры stop/start указываемые при регистрации службы.
Службу я останавливаю когда нужно (если утерян-отключен объект для работы).
- Код: Выделить всё
Application.StopDaemons(true);
Включить "снаружи" службу я могу, но интересует можно ли запустить после остановки изнутри
StopDaemons это процедура в unit daemonapp;
там же есть procedure RunDaemons;
но не понятно откуда ее задействовать, и возможно ли это.