Подтвердить что ты не робот

Как перенести приложение .NET Windows Service в Linux с помощью моно?

Какой лучший способ миграции .NET Windows Service в Linux с помощью моно? Я пытался избежать выполнения приложения в виде запланированной команды.

Можно ли получить демона службы/системы (в linux) как поведение?

4b9b3361

Ответ 1

В Linux, deamons - простые фоновые процессы. Никакие специальные методы управления (например, start(), stop()) не используются, как в Windows. Создайте свой сервис как простое (консольное) приложение и запустите его в фоновом режиме. Используйте инструмент, например daemonize, чтобы запустить программу как демон Unix и не забудьте указать mono как программу, которая будет активирована.

Как отмечают другие, mono-service является хостом для запуска служб, построенных с помощью сборки ServiceProcess. Службы, созданные для Windows, могут использовать этот метод для запуска без изменений в Linux. Вы можете управлять службой, отправляя сигналы процессу (см. Справочную страницу).

Ответ 2

Можете ли вы использовать моно-сервис для его обертки?

См. этот вопрос.

Ответ 3

То, как я это делал в прошлом, - это скомпилировать приложение .Net в качестве консольного приложения, а затем на сервере Linux создать запуск script в каталоге initscripts.

Linux, очевидно, не имеет служб Windows, а демоны, инициированные из каталогов rc.d при запуске, являются его эквивалентом. Все большинство скриптов rc.d - это запуск различных приложений в фоновом потоке, поэтому нет ничего сложного в этом. Единственный бит дополнительной работы в том, что вам нужно будет написать оболочку Linux script, и если вы хотите остановить службу.