如何管理停止的红隼服务

How to manage kestrel service that is stopped

我在 kestrel 上的 CentOs7 x64 中发布了我的 AspNetCore 项目,没有任何反向代理服务器,例如 enginx webServer。

我的服务有时会停止,如何重置名为 kestrel 的崩溃服务?

我使用这个 bash 脚本在 /etc/systemd/system 中创建了 kestrel 服务:

[Unit]
Description=TestProject running on CentOS 7

[Service]
WorkingDirectory=/home/aspnetcore/TestProject
ExecStart=/usr/bin/dotnet /home/aspnetcore/TestProject/WebUi.dll
Restart=always
# Restart service after 10 seconds if dotnet service crashes
RestartSec=10
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target 

您可以使用监控系统来管理服务生命周期。

Zabbix、PRTG 和 ManageEngine 是最好的监控系统。通常我使用 ManageEngine 监控,它将事件作为服务状态的传感器。对于每个事件,您都可以设置操作,例如执行 bash 脚本(用于重置 kestrel 服务)。