Tôi cần thông tin về lưu trữ bảng điều khiển lõi net hoặc ứng dụng asp.net dưới dạng deamon linux. Ứng dụng lưu trữ như Dịch vụ Windows đã được hỗ trợ bởi Microsoft.Hosting.WindowsService, nhưng tôi cần một cái gì đó tương tự cho deamons Linux.ASP.NET Core RC2 dưới dạng linux deamon
Trả lời
Tôi đang chạy trên RHEL và do đó đã chọn ghi các tệp đơn vị hệ thống của riêng mình. Dưới đây là một ví dụ về một trong tôi sử dụng trong conjuction với PostgreSQL (do đó biến môi trường). Tôi đã loại bỏ thông tin nhạy cảm vì những lý do rõ ràng.
[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
Các tập tin đi trong thư mục /etc/systemd/system
và được đặt tên theo bất cứ điều gì bạn muốn đặt tên cho dịch vụ với ".service" sau khi nó. Ví dụ: đường dẫn đầy đủ có thể là /etc/systemd/system/aspnet-example.service
.
Sau đó, bạn có thể bắt đầu và ngừng dịch vụ với systemctl start aspnet-example
và systemctl stop aspnet-example
.
Để thiết lập các dịch vụ để bắt đầu lúc khởi động: systemctl enable aspnet-example
Những điều chính để chỉ ra trong file cấu hình là:
người dùng và Nhóm KHÔNG nên là root. Tôi khuyên bạn nên tạo một người dùng mới theo đó các ứng dụng của bạn chạy.
KillMode = nhóm điều khiển được đặt sao cho SIGTERM được gửi đến tất cả các quá trình dotnet mà dịch vụ được chạy.
ReadWriteDirectory và WorkingDirectory trỏ tới thư mục gốc của ứng dụng web của bạn. Tôi đã sử dụng
/var/www/myapp
làm ví dụ.ExecStart phải là một đường dẫn tuyệt đối đến nhị phân dotnet. Systemd không hỗ trợ đường dẫn tương đối.
EDIT: Một điều tôi quên đề cập đến là tôi thường chạy nginx làm proxy ngược trước ứng dụng của mình. Tôi đã bao gồm một liên kết có thêm thông tin về việc xuất bản lên một máy chủ sản xuất Linux.
https://docs.asp.net/en/latest/publishing/linuxproduction.html
- 1. Có thể chạy ứng dụng .NET Core dưới dạng Windows Service AND Linux deamon
- 2. Cơ sở dữ liệu hạt nhân ASP.NET Core RC2
- 3. không thể thêm tham chiếu đến .net core Lớp thư viện asp.net core rc2
- 4. Moq.netcore không cho .Net Core RC2
- 5. .NET Core RC2 trong Service Fabric
- 6. Tham khảo Dự án Thư viện Toàn khung từ Ứng dụng Web ASP.NET Core MVC (RC2)?
- 7. ASP.net Core RC2 Web API POST - Khi nào sử dụng Create, CreatedAtAction, vs. CreatedAtRoute?
- 8. Kiểm tra tích hợp bị hỏng sau khi chuyển sang ASP.NET Core RC2
- 9. Chú thích dữ liệu ngày giờ không hoạt động trong ứng dụng ASP.NET Core RC2
- 10. Sử dụng net451 thư viện trong ứng dụng ASP.NET Core (RC2)
- 11. linux curl lưu dưới dạng utf-8
- 12. Làm cách nào để thêm tệp dưới dạng liên kết trong thư viện .NET Core?
- 13. ASP.NET Core Identity 3 Cookie timeout
- 14. Xây dựng .NET Core 1.0 RC2 ứng dụng trên máy chủ xây dựng
- 15. Xác thực cookie Asp.Net Core
- 16. Chuyển ứng dụng ASP.NET sang Mono/Apache dưới Linux
- 17. Asp .Net Core RC2 trên Windows IoT và Raspberry Pi 3
- 18. ASP.NET Core Response.End()?
- 19. @ Html.EnumDropDownListFor trong Asp.net Core
- 20. ASP.NET Core "CreatedAtRoute" Không
- 21. UserHostAddress trong Asp.net Core
- 22. ServicePointManager trong ASP.NET Core
- 23. Có Session.Abandon() asp.net Core
- 24. Request.Files trong ASP.NET CORE
- 25. Chạy quy trình Java dưới dạng Dịch vụ trong Linux
- 26. Đăng các tệp từ ASP.NET Core web api lên một trang web ASP.NET Core khác api
- 27. Không intellisense trong ASP.Net Core
- 28. Phần cấu hình ASP.Net 5 RC2 ràng buộc
- 29. MediatR với ASP.NET Core DI
- 30. ASP.NET Core Change Build directory
Tôi tự hỏi mình cùng một câu hỏi vài phút trước. Tôi ước tôi có thể upvote nó nhiều hơn một lần. Trên thực tế, tôi muốn, sử dụng cùng một codebase, làm cho nó có thể chạy một ứng dụng .Net Core như dịch vụ windows, nhị phân linux (như một deamon) và dockerized. –