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

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

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

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

Сообщение Лекс Айрин » 17.10.2016 14:41:35

Alex2013, вообще-то веб-сервис это всегда демон/сервис. В трее, как правило, лишь управляющая им программа (включить/выключить/перезапустить)
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение gvido » 17.10.2016 14:42:19

Лекс Айрин писал(а):gvido

там же...

Код: Выделить всё
function FileCreateUTF8(Const FileName : string) : THandle; overload;
function FileCreateUTF8(Const FileName : string; Rights: Cardinal) : THandle; overload;
Function FileCreateUtf8(Const FileName : String; ShareMode : Integer; Rights : Cardinal) : THandle; overload;


Добавлено спустя 1 минуту 43 секунды:
судя по всему, старая функция создания файла осталась неизменной еще с досовских времен... вместе с соглашениями о кодировках и пр...


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

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

Сообщение Alex2013 » 17.10.2016 16:02:46

Лекс Айрин писал(а):Alex2013, вообще-то веб-сервис это всегда демон/сервис. В трее, как правило, лишь управляющая им программа (включить/выключить/перезапустить)

У меня веб-сервер пока просто обычная GUI софтина ...
Обработка запросов идет через потоки в которых бесконечным циклом запущен опрос сокета ..
( основу кода сервера я наголо но честно скомуниздил тут https://sites.google.com/site/timpascallib/veb-server )
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Лекс Айрин » 17.10.2016 20:26:24

gvido, не за что.

Alex2013 писал(а):У меня веб-сервер пока просто обычная GUI софтина ...


вообще, гуй здесь только средство запуска, так что я бы не стал лично вообще с него в этом деле начинать.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение gvido » 18.10.2016 10:26:34

Ну, мой сервис тоже начинался с GUI формочки. С отладкой в лазарусе проблема, и еще долго будет. Поэтому приходится по максимуму проверять куски кода в простых при GUI приложениях..
Никто не в курсе, свой отладчик в планах то есть?

Еще вопрос - Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

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

Сообщение and » 18.10.2016 17:57:37

gvido писал(а):Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Менеджер сервисов (services.msc) открыт?
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

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

Сообщение gvido » 19.10.2016 13:54:49

and писал(а):
gvido писал(а):Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Менеджер сервисов (services.msc) открыт?

Да, в менеджере помечен как отключен. Через sc запрашиваю удаление - пишет ответ, что помечен на удаление. Удаляется только с перезагрузкой.
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

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

Сообщение ElectroGuard » 20.10.2016 00:03:04

Несколько замечаний.
1. Веб сервер может вполне быть и гуёвый, однако это плохая практика. Намного удобнее выполненный сервисом.
2. Так как отладчик в лазаре всё еще с вопросами, удобно один и тот же код отлаживать в винде в дефли, а дальше переносить в лазарь и там допиливать. Так вполне можно сделать даже на относительно больших проектах.
3. "Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление" Стоит посмотреть - не болтаются ли обломки сервиса в памяти.
4. Сервисы в лазаре удобнее разрабатывать в линуксе. Там сервис (демон) от не-сервиса отличается несколькими строчками, демонизацией. Так что можно обойтись без гуёвых нахлобучек, а запускать демон как обычное приложение.
5. В линуксе удобнее использовать самописанный демон вместо того, что генерируется самим лазарусом.
ElectroGuard
новенький
 
Сообщения: 71
Зарегистрирован: 03.06.2016 12:10:22

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

Сообщение gvido » 20.10.2016 11:00:41

ElectroGuard писал(а):Несколько замечаний.
1. Веб сервер может вполне быть и гуёвый, однако это плохая практика. Намного удобнее выполненный сервисом.
2. Так как отладчик в лазаре всё еще с вопросами, удобно один и тот же код отлаживать в винде в дефли, а дальше переносить в лазарь и там допиливать. Так вполне можно сделать даже на относительно больших проектах.
3. "Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление" Стоит посмотреть - не болтаются ли обломки сервиса в памяти.
4. Сервисы в лазаре удобнее разрабатывать в линуксе. Там сервис (демон) от не-сервиса отличается несколькими строчками, демонизацией. Так что можно обойтись без гуёвых нахлобучек, а запускать демон как обычное приложение.
5. В линуксе удобнее использовать самописанный демон вместо того, что генерируется самим лазарусом.


Я попробовал сделать рантайм демона, как в примерах, но что-то так и не собралось. много странной ругани было. позже к этому вернусь. Пока нужно допилить быстро задачу.
Жаль что отладчик не в приоритете.... :( Давно уже на Делфи ничего не собираю, но до сих пор скучаю по отладчику делфи.....
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

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

Сообщение Лекс Айрин » 20.10.2016 11:30:55

gvido писал(а):Жаль что отладчик не в приоритете....


Судя по всему, он не просто не в приоритете -- он явно для галочки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение SSerge » 20.10.2016 12:53:42

Лекс Айрин писал(а):он явно для галочки


Он в основном не для этой среды разработки и не для этого языка. NetBeans/C++ с этим же формально отладчиком вполне себе функционирует.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

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

Сообщение gvido » 20.10.2016 13:27:48

SSerge писал(а):
Лекс Айрин писал(а):он явно для галочки


Он в основном не для этой среды разработки и не для этого языка. NetBeans/C++ с этим же формально отладчиком вполне себе функционирует.



Так вот и получается, что прикручен для галочки.... Он же не понимает паскалевские данные, кроме самых примитивных. Си(шные) и С++ понимает отлично.
А дельфовый отладчик никто не прикручивал (от 5 или 7 делфи)?
Хотя, он же встроенный, не прикрутишь. :(


Народ, кто-нибудь использовал TDaemonDef.RunArguments? Какой формат там используется то? Может этоve полю и нужно задавать значение '--config=путь к конфигурационному файлу', чтобы при регистрации сервиса этот путь сохранился в параметрах настройки сервиса???
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

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

Сообщение and » 21.10.2016 18:05:19

gvido писал(а):
and писал(а):
gvido писал(а):Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Менеджер сервисов (services.msc) открыт?
Да, в менеджере помечен как отключен. Через sc запрашиваю удаление - пишет ответ, что помечен на удаление. Удаляется только с перезагрузкой.
Вот именно из-за него и не удаляется.
Удаляйте при закрытом менеджере - перезагрузки не понадобится.

Добавлено спустя 17 минут 55 секунд:
Есть ещё некий fpdebug, но на какой стадии его разработка - понятия не имею.
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

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

Сообщение gvido » 21.10.2016 20:34:13

Добавлено спустя 17 минут 55 секунд:
Есть ещё некий fpdebug, но на какой стадии его разработка - понятия не имею.


Не, чего то не так.... Если сервис не запускать, а установить и удалить при открытой консоли получается отлично. Но, если запустить и остановить, то уже не удаляется, а помечается на удаление. Раз вообще прикол поймал - удалить не давало сервис, так как за поток зацеплялся DHCP Client - во, как...

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

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

Сообщение gvido » 27.10.2016 16:34:30

Народ, день добрый. Вплыл вопрос по сервису-демону.
Как можно отменить регистрацию сервиса?
Ситуация следующая - при установке сервиса осуществляется проверка наличия конфигурационного файла по доп. параметру --log, либо в папке с ехешником. И если конфиг не найден, то желательно отменить регистрацию сервиса.
Как это правильно сделать?
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Пред.След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Lucifer и гости: 61

Рейтинг@Mail.ru