當前位置:
首頁 > 最新 > 用C#編寫Linux守護進程

用C#編寫Linux守護進程

如果要在Red Hat Enterprise Linux上將.NET Core進程作為後台進程運行,則可以創建自定義systemd單元。今天我將為.NET Core編寫兩個自定義系統單元的例子。一個是運行.NET Core控制台應用程序的一種類型,另一個是運行ASP.NET Core Web應用程序的簡單類型。

控制台應用程序

建立一個應用程序

您可以用在systemd中使用指定項目目錄作為工作目錄。但是,我們來構建一個二進位文件並將其用於systemd。用dotnet new 命令創建您的項目後編輯Program.cs如下。

using System;

using System.IO;

namespace ConsoleApplication

{

public class Program

{

public static void Main(string[] args)

{

var path = Path.GetTempFileName();

File.WriteAllText(path, "Hello Temp File!");

Console.WriteLine($"Wrote temp file: ");

}

}

}

然後用命令發布項目。你會看到。

創建一個自定義的systemd

首先,創建一個運行守護進程和工作目錄的用戶。

$ sudo useradd -s /sbin/nologin dotnetuser$ sudo mkdir /var/SystemdExample$ sudo cp /home/tatanaka/Documents/git/tanaka-takayoshi/SystemdExample/1.1/ConsoleApp/bin/Release/netcoreapp1.1/publish/*/var/SystemdExample$ sudo chown -R dotnetuser:dotnetuser /var/SystemdExample

然後在目錄下創建一個自定義的systemd單元文件。文件名應該是。我創建的目錄和文件名為:。

您應該在ExecStart中指定dotnet的完整路徑。以上是紅帽提供的.NET Core 1.1的情況。然後你可以用命令執行守護進程。您可以使用命令或命令查看控制台輸出。

使用PrivateTemp

在上述系統單元中,程序在臨時文件夾下寫入一個文件。你有時想寫一個來自其他用戶的臨時文件是安全的。您可以在section中的指定使用PrivateTemp。

重新載入單元文件後,程序可以以前一樣訪問像目錄,但這不是實際的目錄。

Web應用程序

建立一個應用程序

現在我們來構建一個ASP.NET Core Web應用程序。今天我使用默認的模板項目。

現在可以用dotnet命令運行。

創建一個自定義的systemd

為這個Web應用程序也指定dotnetuser名稱。

然後創建一個自定義的systemd單元文件。

最後,您可以將ASP.NET Core應用程序作為Linux守護程序運行。請注意,此應用程序偵聽埠8080代替了ASP.NET Core 默認的 5000,因為我在單元文件中指定了環境變數 。

然而這對於ASP.NET Core的生產使用來說是不夠的。你可能需要設置一個反向代理伺服器,比如Jexus,nginx,防火牆等等。

原文地址:http://www.cnblogs.com/xiaoliangge/p/8379992.html


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dotNET跨平台 的精彩文章:

小白帶你入坑xamarin系列之環境搭建和準備
net的retrofit-WebApiClient庫深入篇

TAG:dotNET跨平台 |