如何在没有systemd的Linux Amazon中安装.NET核心应用程序
在Ubuntu16.04上发布.NET核心应用程序时,我需要一种将应用程序作为服务运行的方法,以便它可以轻松管理,并在失败时自动重新启动。有一个很好的指南,告诉你如何做到这一点。推荐的方法是使用我已成功使用多次的如何在没有systemd的Linux Amazon中安装.NET核心应用程序,linux,amazon-web-services,.net-core,systemd,Linux,Amazon Web Services,.net Core,Systemd,在Ubuntu16.04上发布.NET核心应用程序时,我需要一种将应用程序作为服务运行的方法,以便它可以轻松管理,并在失败时自动重新启动。有一个很好的指南,告诉你如何做到这一点。推荐的方法是使用我已成功使用多次的systemd命令。然而,我决定在AWS上托管我的.NET核心项目,并决定使用基于RedHat的Amazon Linux发行版,它没有systemd命令。下面是我以前在Ubuntu服务器上创建服务配置的方式 基本上,我要求提供一种将.NET核心应用程序设置为服务的等效方法,以及管理它的等
systemd
命令。然而,我决定在AWS上托管我的.NET核心项目,并决定使用基于RedHat的Amazon Linux发行版,它没有systemd
命令。下面是我以前在Ubuntu服务器上创建服务配置的方式
基本上,我要求提供一种将.NET核心应用程序设置为服务的等效方法,以及管理它的等效命令(启动、重新启动、停止)
编辑:从评论中,我意识到我正在寻找的是一个名为init系统的系统。我在谷歌上搜索了“LinuxAmazonInit”,发现LinuxAmazon中使用的默认init系统是“upstart”。以下是我在中找到答案的来源amazon linux是否有另一个init系统,如果它没有systemd或sysvinit,我会感到惊讶。我尝试了sysvinit,但我得到一个错误:-bash:sysvinit:command not found。所以我猜他们也没有sysvinit。我现在已经在谷歌上搜索了“LinuxAmazonInit”,发现正确的命令是“upstart”。我将通读一份文档,学习如何使用它。我没有意识到我在寻找一个init系统@derekdreery谢谢你指出我应该找的地方!您说:“基于RedHat,它没有systemd命令”。你确定systemd是命令吗?您是否尝试过使用“systemctl start | stop your service”语法?还有一种supervisord,它是一种迷你init/watchdog系统,可以安装在具有不同init系统的*nix系统上,并为您提供类似的配置和控制机制。
[Unit]
Description=Example .NET Web API Application running on Ubuntu
[Service]
WorkingDirectory=/var/aspnetcore/hellomvc
ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll
Restart=always
RestartSec=10 # Restart service after 10 seconds if dotnet service crashes
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target