netcoreapp 2.1, как сохранить приложение в фоновом режиме в linux - PullRequest
0 голосов
/ 31 марта 2020

Я хочу знать, как заставить мой проект работать в фоновом режиме Linux без остановки, если я закрываю консоль Linux, я хочу, чтобы мой проект работал без закрытия, если терминал закрыт.

Например:

Терминал

Если я закрою точку терминала net, запустите процесс kill auto:

введите описание изображения здесь

sh пробег. sh:

#!/bin/bash
echo "Start Server.!"
cd /usr/games/bin/Debug/netcoreapp2.1/ && dotnet MasterServer.dll

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Вы должны использовать новый (. net core 2.1 и выше) IHostedService. Это обобщенная форма c веб-службы, которую вы используете в asp. net ядре. Это заставляет ваше приложение работать как Windows служба на Windows, а служба systemd на * nix.

Вот документация Microsoft по этому вопросу.

https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/background-tasks-with-ihostedservice

Здесь также есть репозиторий github с примером фоновой службы:

https://github.com/aspnet/Hosting/tree/release/2.1/samples/GenericHostSample

0 голосов
/ 31 марта 2020

Если вы хотите, чтобы ваше приложение запускалось как служба, вы можете создать systemd службу.

Вы можете следовать этому руководству (раздел Мониторинг): должен выглядеть файл модуля как

[Unit]
Description=My Service

[Service]
WorkingDirectory=/var/app/myservice/production
ExecStart=/usr/bin/dotnet /var/app/myservice/production/mysite.dll
Restart=always
RestartSec=15
SyslogIdentifier=mysite
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

Устройство сообщает, что ваш сервис будет идентифицирован как mysite в системных журналах и будет работать под учетной записью пользователя www-data. WorkingDirectory и ExecStart очевидны, в то время как строка WantedBy=multi-user.target указывает системе запускать ее при запуске. Пропустите его по требованию.

Для конфигурации systemd вы можете взглянуть на это руководство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...