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