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
我们的日志文件已经写上了,到此结束