![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как грамотно остановить сервис? Service WinNT [D7, Win2k]
Прогер © (2006-08-18 15:39:00)После выполнения метода TServiceApplication.DoStop невозможно запустить сервис вновь. В консоли управления сервисами (службами) все кнопки ("запустить", "остановить", ...) становяться недоступными. Пробовал останавливать его if DoStop then Self.Free - результат тот же, не доступны все кнопки управления. Подскажите, как правильно остановить сервис изнутри, в программном коде. Останов нужен тогда, когда возникает некая неприодолимая ошибка - сервис детектирую подобную ситуацию должен произвести остановку.
Прогер (2006-08-18 17:08:00) [1]Service1.Status:=csStopped
Большое спасибо!
procedure TMyService.Stop;
begin
if DoStop then Self.Status:= csStopped;
end;
BiN (2006-08-18 16:26:00) [2]
> BiN © (18.08.06 16:19) [2]
>
> В твоем случае: Service1.Status:=csStopped
> Если не использовать SvcMgr, то см. SetServiceStatus
>
Хмм, пардон. TService вроде самостоятельно устанавливает свой статус в csStopped по завершении "служебного" потока (в процедуре DoStart).
BiN (2006-08-18 16:19:00) [3]
> Прогер (18.08.06 15:39)
В твоем случае: Service1.Status:=csStopped
Если не использовать SvcMgr, то см. SetServiceStatus
Чапаев (2006-08-18 15:56:00) [4]> В консоли управления сервисами (службами) все кнопки ("запустить",
> "остановить", ...) становяться недоступными.
Почти наверняка это означает, что сервису было отправлено сообщение об остановке, но он так и не остановился.