- 创建服务文件: 打开一个新的.service文件在/etc/systemd/system/目录下,例如myapp.service
sudo nano /etc/systemd/system/myapp.service
- 编辑服务文件: 添加以下内容到myapp.service文件,确保修改ExecStart以指向你的.NET Core应用程序的可执行文件,以及其他的路径和配置根据你的需求:
[Unit] Description=My .NET Core Application [Service] WorkingDirectory=/path/to/your/app ExecStart=/usr/bin/dotnet /path/to/your/app/YourApp.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-app User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target
- WorkingDirectory: 应用程序的工作目录。
- ExecStart: 启动应用程序的命令。
- Restart: 服务失败时的重启策略,always表示总是重启。
- RestartSec: 重启前等待的时间。
- KillSignal: 系统用于停止服务的信号。
- User: 运行此服务的用户。
- Environment: 设置环境变量,如ASP.NET Core环境。
注:如何知道ExecStart中命令的路径呢?
答:which命令会在您的系统的PATH环境变量指定的目录中搜索可执行文件。
which dotnet
我的配置如下:
[Unit] Description=自动运行程序 [Service] WorkingDirectory=/root/workerservice ExecStart=/root/dotnet/dotnet /root/workerservice/WorkerServiceForLinux.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-app User=root Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target
- 启用和启动服务: 重新加载systemd守护进程以读取新的服务文件,然后启用并启动你的服务
sudo systemctl daemon-reload sudo systemctl enable myapp.service sudo systemctl start myapp.service
- 检查服务状态: 使用以下命令查看服务状态
sudo systemctl status myapp.service
- 停止与disable 服务
sudo systemctl disable myapp.service sudo systemctl stop myapp.service
- 通过这些步骤,您的.NET Core应用程序将作为守护进程运行在Debian系统上。如果应用程序崩溃,systemd将按照您在myapp.service文件中定义的Restart和RestartSec选项自动重新启动它。
还没有评论,来说两句吧...