微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET核心RC2作为linux deamon

我需要关于networking核心控制台或asp.net应用程序作为linux deamon的托pipe信息。 主机应用程序作为Windows服务已经由Microsoft.Hosting.WindowsService支持,但我需要类似的Linux deamons。

为什么Process.Start会意外返回false

如何从C#中的打印机中删除访问控制条目?

在确定菜单项目的位置时是否有任何标准要遵循?

如何获得在Windows上使用.NET的实际目录path?

添加条目DNS客户端parsing器caching,而不使用主机文件

我在RHEL上运行,因此选择编写我自己的systemd单元文件。 这里是我和Postgresql结合使用的一个例子(因此是环境变量)。 我已经清除了敏感信息,原因很明显。

[Unit] Description=My Sample Application Documentation= Wants=network.target After=network.target [Service] User=dotnetuser Group=dotnetuser Nice=5 KillMode=control-group SuccessExitStatus=0 1 Environment=MY_CONNSTRING=server=localhost;Username=myUser;Password=myPass;Database=myDatabase NoNewPrivileges=true PrivateTmp=true InaccessibleDirectories=/sys /srv -/opt /media -/lost+found ReadWriteDirectories=/var/www/myapp WorkingDirectory=/var/www/myapp ExecStart=/opt/dotnet/dotnet run [Install] WantedBy=multi-user.target

文件进入/etc/systemd/system目录,然后命名为“.service”后面的任何名称。 例如,完整路径可能是/etc/systemd/system/aspnet-example.service 。

然后,您可以使用systemctl start aspnet-example和systemctl stop aspnet-example启动和停止服务。

要将服务设置为在启动时启动: systemctl enable aspnet-example

配置文件中要指出的主要内容是:

用户和组不应该是root。 我建议让一个新的用户运行你的应用程序。

KillMode = control-group被设置为使得SIGTERM被发送到运行服务的所有dotnet进程。

ReadWriteDirectory和WorkingDirectory指向您的Web应用程序的根目录。 我以/var/www/myapp为例。

ExecStart必须是dotnet二进制文件绝对路径。 Systemd不支持相对路径。

编辑:我忘了提到的一件事是,我通常运行Nginx作为我的应用程序前面的反向代理。 我已经包含一个链接,其中包含有关发布到Linux生产服务器的更多信息。

https://docs.asp.net/en/latest/publishing/linuxproduction.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐