172 похожих чатов

Вопрос новичка: Где хостить приложения на раст под Windows ? В настоящее

время у меня порядка 20 сервисов написанных на с++ и на с# работают под Windows и все они "живут" в Windows services. Есть желание переписать сервисы с# на rust-е. Где потом мне эти сервисы хостить ?

28 ответов

14 просмотров

что такое windows services?

Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
что такое windows services?

Войдите в Таск мэнжджер под Виндов. Вкладка Службы. Там увидите список активных Сервисов - Служб.

Chu
Войдите в Таск мэнжджер под Виндов. Вкладка Служб...

ну это же просто вызов пары системных функцй для регистрации. То что сишарп/плюсцы автоматом компиляют с поддержкой этой ерунды не значит что руками нельзя сделать. Возможно есть уже готовые либы. Если нет надо писать

Chu
Войдите в Таск мэнжджер под Виндов. Вкладка Служб...

значит и растовые сервисы можешь там хостить

Αλεχ Zhukovsky
ну это же просто вызов пары системных функцй для р...

Либы хз, но вот просто биндиги к win32 api я видел. Этого должно быть достаточно.

Пашечка
Либы хз, но вот просто биндиги к win32 api я видел...

нет, недостаточно. там базовые типы есть которые осуществляют регистрацию/удаление, старт/стоп джобы и т.п. Но ничего невозможного в том что написать это нет офк

Пашечка
Либы хз, но вот просто биндиги к win32 api я видел...

нужен аналог вот такого: https://github.com/SublimeText/Pywin32/blob/master/lib/x32/win32/lib/win32serviceutil.py#L747

Αλεχ Zhukovsky
нет, недостаточно. там базовые типы есть которые о...

я не в курсе, а на виндовых сервисах обязательно сам процесс должен что-то там дергать и так далее? Нельзя сделать аля по аналогии с systemd: сделать простое описание сервиса в текстовом файле и зарегистрировать его в системе?

Alexander "SonnySlave" Zaitsev
я не в курсе, а на виндовых сервисах обязательно с...

нет, нельзя сделать просто. бинарь сам себя должен зарегать в сервисной системе и передать как его зовут, и т.п. через FFI вызов

Αλεχ Zhukovsky
нет, нельзя сделать просто. бинарь сам себя должен...

А кто запрещает написать бинарник-хелпер, который себя куда надо регистрирует, а потом подпроцессом запускает нужную программу?

Mikail Bagishov
А кто запрещает написать бинарник-хелпер, который ...

по-моему там надо ещё коллбеки правильно регистрировать но это не точно. Я никогда так низко не спускался: работал через готовые интерфейсы где ты просто наследуешь утил-класс где всё есть и просто определяешь onstart/onstop

Chu- Автор вопроса
Αλεχ Zhukovsky
нет, недостаточно. там базовые типы есть которые о...

Конечно можно контейнер самописный для приложений раст написать. Но как то это не системно получается. Зоопарк. Здесь службы виндовс стандартные работают, здесь самописный контейнер с каким нибудь Рестом для управления раст-приложениями (старт, стоп, рестарт, апдэйт), здесь "рыбу заворачиваем" ☺ .

Chu
Конечно можно контейнер самописный для приложений ...

а по пути глядишь и докер перепишешь на раст - красота же!

Chu- Автор вопроса
Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
а по пути глядишь и докер перепишешь на раст - кра...

Получается кроме как под с++ переписать выхода нет ?

Alexander "SonnySlave" Zaitsev
а по пути глядишь и докер перепишешь на раст - кра...

Вот и решена проблема отсутствия биндов под сервисы винды

Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
не понял вопроса, честно говоря

Сервисы, которые на с# написаны, переписать на с++. Но у меня эти сервисы на С# Refleсtion активно юзают. Так что засада ...

https://github.com/rozanski/srvstart

red75prime
https://github.com/rozanski/srvstart

// кхкхкхкостылькх

Chu
Сервисы, которые на с# написаны, переписать на с++...

хех. изначально у тебя желание именно на ржаст переписать было. Кажется, что в твоём случае по имеющимся данным просто вообще ничего трогать не надо и оставить свои шарповые сервисы как есть. Нечего бесполезным RIIR на ровном месте заниматься

Пух
// кхкхкхкостылькх

Если ничем нетривиальным на рестарте заниматься не надо, то сойдёт

Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
хех. изначально у тебя желание именно на ржаст пер...

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

Chu
Ну хочется же новые технологии пощупать в действии...

тогда непонятно, зачем переписывать на С++ вместо раста

Пашечка
Либы хз, но вот просто биндиги к win32 api я видел...

https://crates.io/crates/windows Сами m$ft поддерживают крейт с биндингами ко всему что только есть в winapi

Jøhn Đøꝩsøn
https://crates.io/crates/windows Сами m$ft поддер...

О, нифигасе. Пркльна. А хорошо поддерживают, или как всегда у них?)

Пашечка
О, нифигасе. Пркльна. А хорошо поддерживают, или к...

Ну, эти биндинги автоматически сгенерированы по некоторому описанию, как и для других языков

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта