我需要关于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] 举报,一经查实,本站将立刻删除。