Проблема при создании демона(сервиса) в Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Проблема при создании демона(сервиса) в Lazarus

Сообщение wadman » 27.10.2016 17:13:28

gvido писал(а):Но, если запустить и остановить, то уже не удаляется, а помечается на удаление.

А зачем удалять? Остановил, заменил исполняемый файл и запустил.
gvido писал(а):Ситуация следующая - при установке сервиса осуществляется проверка наличия конфигурационного файла по доп. параметру --log, либо в папке с ехешником. И если конфиг не найден, то желательно отменить регистрацию сервиса.
Как это правильно сделать?

Как вариант: дернуть abort в BeforeInstall.
wadman
постоялец
 
Сообщения: 122
Зарегистрирован: 18.10.2016 15:54:28

Re: Проблема при создании демона(сервиса) в Lazarus

Сообщение gvido » 27.10.2016 17:52:00

wadman писал(а):Как вариант: дернуть abort в BeforeInstall.

Спасибо. :)
Только не BeforeInstall, а AfterInstall
Код: Выделить всё
procedure TMyDaemon.DataModuleAfterInstall(Sender: TCustomDaemon);
begin
  if not ConfigOk then
    begin
         if fileexists(logfile) then
            append(ff)
         else
           rewrite(ff);
         self.UnInstall; //Вот это удаляет регистрацию без ошибок.
        writeln(ff,FormatDatetime('c',now),' Сервис удален.');
        CloseFile(ff);
    end;
end;


Может кому пригодится еще...
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Re: Проблема при создании демона(сервиса) в Lazarus

Сообщение wadman » 27.10.2016 18:18:20

gvido писал(а):Только не BeforeInstall, а AfterInstall

Этот код удаляет только что установленную службу.
Если мой вариант рабочий, то там служба даже не установится, что идеологически вернее.
wadman
постоялец
 
Сообщения: 122
Зарегистрирован: 18.10.2016 15:54:28

Re: Проблема при создании демона(сервиса) в Lazarus

Сообщение gvido » 27.10.2016 18:44:15

Да, но при этом она в консоль, выдаст сообщение что такая служба не установлена и ошибкой доступа по адресу. Это не хорошо, по моему...

Можно попробовать проверить доступность файла конфигурации в блоке до установки. Тогда, возможно, ошибки не будет.
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

Рейтинг@Mail.ru