在linux 上运行.NetCore 控制台应用,开启自动启动

1.创建应用

我们选择控制台应用,点击下一步,下一步就可以

 2.编写我们的代码

我这里写两个测试代码,打印输出并把运行的过程写到日志文件里

// See https://aka.ms/new-console-template for more information
using System.Text;
///日志写的路径
///windows 下路径写在了应用程序所在目录
///linux目录是 //opt//netcoreproject//logs下
string path = System.Environment.CurrentDirectory+"//logs";opt//netcoreproject//logs
Console.WriteLine("程序已运行10秒后开始执行任务");
bool iszx = true;
void getNum(object obj)
{
    for (int i = 0; i<100000; i++)
    {
        //Console.WriteLine(DateTime.Now+"----"+i);
        int a = 0;
        int c = a + i;
    }
    Thread.Sleep(3000);
    //FileStream file = new FileStream(path, FileMode.Create);
    //StreamWriter writer= new StreamWriter(file);
    //writer.Write("12312312");
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }
    StreamWriter sw = new StreamWriter(path+"//" + DateTime.Now.ToShortDateString().Replace("/", "-") + ".txt", true);
    sw.Write(DateTime.Now + ": 本次任务已执行10秒后开始执行下次任务"+ Thread.CurrentThread.ManagedThreadId.ToString() + " \r\n");
    sw.Close();
    sw.Dispose();
    //Console.WriteLine(DateTime.Now);
    Console.WriteLine("本次任务已执行10秒后开始执行下次任务"+ Thread.CurrentThread.ManagedThreadId.ToString());
    //iszx=true;
}
ThreadPool.SetMaxThreads(5,5);
ThreadPool.SetMinThreads(1, 1);
while (true)
{
    if (iszx)
    {
        //iszx = false;
        Thread.Sleep(1000);
        ThreadPool.QueueUserWorkItem(new WaitCallback(getNum));
        //Thread thread= new Thread(getNum);
        //thread.Start();
        //getNum();
    }
    
}

我们先在windows上运行一下,按F5就可以

我们的日志文件也有了

3.发布代码

我们发布到linux平台,独立部署不需要依赖项

 

4.我们在linux系统上安装dotnet命令SDK

使用wget命令下载sdk文件:

wget https://download.visualstudio.microsoft.com/download/pr/dd7d2255-c9c1-4c6f-b8ad-6e853d6bb574/c8e1b5f47bf17b317a84487491915178/dotnet-sdk-6.0.408-linux-x64.tar.gz

 下载好压缩包后进行解压(例如解压到~/netcore6路径下)

mkdir -p $HOME/netcore6 && tar zxf dotnet-sdk-6.0.408-linux-x64.tar.gz -C $HOME/netcore6

 如此进入cd /home/netcore6/路径下,输入dotnet命令可验证dotnet sdk是否安装成功

输入dotnet --info,出现下面的内容证明我们按照成功了

 5.把我们发布linux的程序拷贝到linux系统中

拷贝完成后我们先手动的进行测试一下是否能正常运行

首写进入到我们程序所在的目录 cd /opt/netcoreproject/linux-x64/,这是我的目录,

运行,注意linux中是区分大小写的

dotnet ConsoleApp2.dll

以上代码运行成,下面我们就来添加开机自动运行

6.开机自动运行

我们进入到etc目录下编辑rc.local文件。cd /etc/

我们在文件的最下面  exit之前填加我们的执行代码

用vi命令进行编辑文件,vi rc.local

先按一下i 

当最下面出现这个的时候我们就可以进行编辑文件了

dotnet /opt/netcoreproject/linux-x64/ConsoleApp2.dll &

最后的& 代表是后台运行程序

添加好后我们按一下esc ,在输入:wq命令进行保存

重启器系统测试一下吧,重启命令reboot

 

我们的日志文件已经写上了,到此结束

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值