dotNetCore v2-用nohup部署应用程序
using Common;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
var tokenSource = new CancellationTokenSource();
Task.Factory.StartNew(() =>
{
while (!tokenSource.IsCancellationRequested)
{
Console.WriteLine($"{DateTime.Now}:业务逻辑处理中");
Thread.Sleep(1000);
}
}).ContinueWith(t =>
{
Console.WriteLine("服务安全退出");
Environment.Exit(0);//强制退出
});
Console.WriteLine("服务成功开启");
while(!"N".Equals(ConfigurationManager.Configuration["isquit"],StringComparison.OrdinalIgnoreCase))
{
Thread.Sleep(1000);
}
Console.WriteLine("Hello World!");
}
}
}
/*******************Common库 ConfigurationManager.cs******************************************/
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Common
{
public class ConfigurationManager
{
public static IConfigurationRoot Configuration
{
get
{
var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(string.Format("appsettings.{0}.json", Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")), optional: true, reloadOnChange: true)
.AddJsonFile(string.Format("ops.{0},json", Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")), optional: true, reloadOnChange: true)
.Build();
return configuration;
}
}
}
}
/***************************************************************/
发布程序:
1.将程序通过FileZilla上传到ubuntu
2.进入程序目录
~/publish/source/ConsoleApp2$ dotnet publish -o ~/publish/output/output1 -c release
3.运行服务 dotnet ConsoleApp2.dll
4.后台运行 nohup dotnet ConsoleApp2.dll &
5.必须通过exit退出终端