Linux 部署多个版本 .net 方法
Linux服务器部署多版本 .net设置开机自动运行服务
一、业务场景
有时候,我们需要在同一台服务器上同时部署 .Net 6.0 或 .Net 7.0 、 .Net 8 ,这个时候就需要安装多个版本的.Net 了
二、操作步骤
1、先到微软官网下载对应版本.Net SDK
例如下载 .Net7.0,地址
https://dotnet.microsoft.com/en-us/download/dotnet/7.0
下载 .Net 8.0 也是一样的办法,下载地址是 Download .NET 8.0 (Linux, macOS, and Windows)
2、上传SDK到linux服务器
例如我Net7.0上传路径 是: /usr/local/dotnet/7.0/sdk
例如我Net8.0上传路径 是: /usr/local/dotnet/8.0/sdk
3、进入上传的路径,进行解压并安装
3.1、安装 7.0
先进入目录 cd /usr/local/dotnet/7.0/sdk
最后执行解压并安装
mkdir -p $HOME/dotnet/7.01 && tar zxf dotnet-sdk-7.0.400-linux-x64.tar.gz -C $HOME/dotnet/7.01
需要注意,执行上面命令后,实际上安装到的路径是: /root/dotnet/7.01/
备注:不一定非要装到 $HOME/dotnet 目录,其他地方也是可以的。具体看个人喜好
接着 编辑文件 /etc/profile
执行 sudo vi /etc/profile ,在最后加入如下代码
export PATH=$PATH:$HOME/dotnet/7.01
export DOTNET_ROOT=$HOME/dotnet/7.01
实际上就是加到自己安装的路径去
最后刷新配置文件生效
source /etc/profile
验证是否安装成功
dotnet --version
或
dotnet --info
3.2、安装 8.0
实际上和上面安装7.0的步骤一样,区别就是按照路径不要和7.0在一起就行了,但是需要注意,你安装完成后,执行 dotnet --info 实际上指向的是你第一次安装的版本,如果想查看安装的8.0版本是否成功,可以通过创建软连接方式实现,例如
创建8.0的软连接
sudo ln -s /root/dotnet801/dotnet /usr/local/bin/dotnet8.01
最后执行查询版本是否安装成功
dotnet8.01 --info
三、怎样创建开机自启动服务,自动运行自己的程序
上面说完了怎样安装.net,最后还需要发布自己的应用程序,并设置开机自动启动运行的服务,我们使用 systemd 来实现,具体操作如下
1、 执行 cd /etc/systemd/system
2、创建服务
vim /etc/systemd/system/net7_cvcall_prod_be.service
其中net7_cvcall_prod_be是服务名称,改这里就行了
最后编辑修改服务的配置
[Unit]
Description=net7_pvcall_prod_be service
[Service]
WorkingDirectory=/home/pvcc/prod/be/publish
ExecStart=/root/dotnet7/dotnet /home/pvcc/prod/be/publish/Gxpr.Pvcc.ZhonTai.Host.dll run --urls=http://*:8001
RestartSec=10
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
需要注意:
Description等号后面的服务名称需要和创建的服务名称一致
WorkingDirectory是指你的程序发布的目录
ExecStart 后面就是指你程序启动运行的命令
如果是设置.net 8.0的应用开启自动启动,实际上直接复制上面的配置,就是改下Description、WorkingDirectory、ExecStart 后面的内容,说白了就是改名称,改路径
3、上面保存后,需要设置开机启动命令,直接执行 systemctl enable net7_cvcall_prod_be.service
4、服务常见命令说明
设置开机启动: systemctl enable redis720.service
启动 systemctl start redis720.service
状态: systemctl status redis720.service ,若看到绿色的active(running)字样说明服务正常启动了。
停止:systemctl stop redis720.service
取消开机自启动 systemctl disable net7_cvcalltest_outapi.service
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)