Проблема при создании демона(сервиса) в Lazarus
Модератор: Модераторы
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Alex2013, вообще-то веб-сервис это всегда демон/сервис. В трее, как правило, лишь управляющая им программа (включить/выключить/перезапустить)
Лекс Айрин писал(а):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 секунды:
судя по всему, старая функция создания файла осталась неизменной еще с досовских времен... вместе с соглашениями о кодировках и пр...
Вот последнюю функцию я не заметил. Спасибо.
Лекс Айрин писал(а):Alex2013, вообще-то веб-сервис это всегда демон/сервис. В трее, как правило, лишь управляющая им программа (включить/выключить/перезапустить)
У меня веб-сервер пока просто обычная GUI софтина ...
Обработка запросов идет через потоки в которых бесконечным циклом запущен опрос сокета ..
( основу кода сервера я наголо но честно скомуниздил тут https://sites.google.com/site/timpascallib/veb-server )
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
gvido, не за что.
вообще, гуй здесь только средство запуска, так что я бы не стал лично вообще с него в этом деле начинать.
Alex2013 писал(а):У меня веб-сервер пока просто обычная GUI софтина ...
вообще, гуй здесь только средство запуска, так что я бы не стал лично вообще с него в этом деле начинать.
Ну, мой сервис тоже начинался с GUI формочки. С отладкой в лазарусе проблема, и еще долго будет. Поэтому приходится по максимуму проверять куски кода в простых при GUI приложениях..
Никто не в курсе, свой отладчик в планах то есть?
Еще вопрос - Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Никто не в курсе, свой отладчик в планах то есть?
Еще вопрос - Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Менеджер сервисов (services.msc) открыт?gvido писал(а):Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
and писал(а):Менеджер сервисов (services.msc) открыт?gvido писал(а):Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Да, в менеджере помечен как отключен. Через sc запрашиваю удаление - пишет ответ, что помечен на удаление. Удаляется только с перезагрузкой.
-
ElectroGuard
- новенький
- Сообщения: 71
- Зарегистрирован: 03.06.2016 11:10:22
Несколько замечаний.
1. Веб сервер может вполне быть и гуёвый, однако это плохая практика. Намного удобнее выполненный сервисом.
2. Так как отладчик в лазаре всё еще с вопросами, удобно один и тот же код отлаживать в винде в дефли, а дальше переносить в лазарь и там допиливать. Так вполне можно сделать даже на относительно больших проектах.
3. "Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление" Стоит посмотреть - не болтаются ли обломки сервиса в памяти.
4. Сервисы в лазаре удобнее разрабатывать в линуксе. Там сервис (демон) от не-сервиса отличается несколькими строчками, демонизацией. Так что можно обойтись без гуёвых нахлобучек, а запускать демон как обычное приложение.
5. В линуксе удобнее использовать самописанный демон вместо того, что генерируется самим лазарусом.
1. Веб сервер может вполне быть и гуёвый, однако это плохая практика. Намного удобнее выполненный сервисом.
2. Так как отладчик в лазаре всё еще с вопросами, удобно один и тот же код отлаживать в винде в дефли, а дальше переносить в лазарь и там допиливать. Так вполне можно сделать даже на относительно больших проектах.
3. "Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление" Стоит посмотреть - не болтаются ли обломки сервиса в памяти.
4. Сервисы в лазаре удобнее разрабатывать в линуксе. Там сервис (демон) от не-сервиса отличается несколькими строчками, демонизацией. Так что можно обойтись без гуёвых нахлобучек, а запускать демон как обычное приложение.
5. В линуксе удобнее использовать самописанный демон вместо того, что генерируется самим лазарусом.
ElectroGuard писал(а):Несколько замечаний.
1. Веб сервер может вполне быть и гуёвый, однако это плохая практика. Намного удобнее выполненный сервисом.
2. Так как отладчик в лазаре всё еще с вопросами, удобно один и тот же код отлаживать в винде в дефли, а дальше переносить в лазарь и там допиливать. Так вполне можно сделать даже на относительно больших проектах.
3. "Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление" Стоит посмотреть - не болтаются ли обломки сервиса в памяти.
4. Сервисы в лазаре удобнее разрабатывать в линуксе. Там сервис (демон) от не-сервиса отличается несколькими строчками, демонизацией. Так что можно обойтись без гуёвых нахлобучек, а запускать демон как обычное приложение.
5. В линуксе удобнее использовать самописанный демон вместо того, что генерируется самим лазарусом.
Я попробовал сделать рантайм демона, как в примерах, но что-то так и не собралось. много странной ругани было. позже к этому вернусь. Пока нужно допилить быстро задачу.
Жаль что отладчик не в приоритете....
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
gvido писал(а):Жаль что отладчик не в приоритете....
Судя по всему, он не просто не в приоритете -- он явно для галочки.
Лекс Айрин писал(а):он явно для галочки
Он в основном не для этой среды разработки и не для этого языка. NetBeans/C++ с этим же формально отладчиком вполне себе функционирует.
SSerge писал(а):Лекс Айрин писал(а):он явно для галочки
Он в основном не для этой среды разработки и не для этого языка. NetBeans/C++ с этим же формально отладчиком вполне себе функционирует.
Так вот и получается, что прикручен для галочки.... Он же не понимает паскалевские данные, кроме самых примитивных. Си(шные) и С++ понимает отлично.
А дельфовый отладчик никто не прикручивал (от 5 или 7 делфи)?
Хотя, он же встроенный, не прикрутишь.
Народ, кто-нибудь использовал TDaemonDef.RunArguments? Какой формат там используется то? Может этоve полю и нужно задавать значение '--config=путь к конфигурационному файлу', чтобы при регистрации сервиса этот путь сохранился в параметрах настройки сервиса???
Вот именно из-за него и не удаляется.gvido писал(а):Да, в менеджере помечен как отключен. Через sc запрашиваю удаление - пишет ответ, что помечен на удаление. Удаляется только с перезагрузкой.and писал(а):Менеджер сервисов (services.msc) открыт?gvido писал(а):Остановленный сервис, с убитыми потоками, не удаляется, а помечается на удаление. В чем может быть причина? Может не все зачистил при остановке сервиса?
Удаляйте при закрытом менеджере - перезагрузки не понадобится.
Добавлено спустя 17 минут 55 секунд:
Есть ещё некий fpdebug, но на какой стадии его разработка - понятия не имею.
Добавлено спустя 17 минут 55 секунд:
Есть ещё некий fpdebug, но на какой стадии его разработка - понятия не имею.
Не, чего то не так.... Если сервис не запускать, а установить и удалить при открытой консоли получается отлично. Но, если запустить и остановить, то уже не удаляется, а помечается на удаление. Раз вообще прикол поймал - удалить не давало сервис, так как за поток зацеплялся DHCP Client - во, как...
На счет fpdebug - нужно почитать и посмотреть- что такое и с чем его "едят".
Спасибо.
Народ, день добрый. Вплыл вопрос по сервису-демону.
Как можно отменить регистрацию сервиса?
Ситуация следующая - при установке сервиса осуществляется проверка наличия конфигурационного файла по доп. параметру --log, либо в папке с ехешником. И если конфиг не найден, то желательно отменить регистрацию сервиса.
Как это правильно сделать?
Как можно отменить регистрацию сервиса?
Ситуация следующая - при установке сервиса осуществляется проверка наличия конфигурационного файла по доп. параметру --log, либо в папке с ехешником. И если конфиг не найден, то желательно отменить регистрацию сервиса.
Как это правильно сделать?
