1、新建文件夹,给读写权限

$ cd / #移动根目录(方便好找)

 文件夹授权方式1:命令

$ sudo mkdir www #新建文件夹
$ cd /www
$ sudo chmod 777 /www #给读写权限

 2、上传打包的项目文件,并解压

安装解压工具

$ sudo apt-get install rar #安装解压工具
$ cd /www #移动到对应目录
$ ls

 

1of2 a start job is running for system logging service 乌班图_守护进程

$ rar x 20221207.rar #解压文件

 

1of2 a start job is running for system logging service 乌班图_守护进程_02

3、安装.NET SDK
当前程序是.NET 6 操作系统是乌班图20.24

到微软官网获取安装命令

使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

打开终端并运行以下命令:

$ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ rm packages-microsoft-prod.deb

安装 SDK

.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

$ sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

 4、安装守护进程

$ sudo apt-get install supervisor  //安装supervisor
$ service supervisor start   //启动supervisor,也可以使用这个命令启动supervisord,启动时可以指定配置文件启动

 修改配置文件 支持web ui

$ sudo chmod 666 /etc/supervisor/supervisord.conf

粘贴webui配置项目到  supervisor/supervisord.conf  如果里面有则解开注释

[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

1of2 a start job is running for system logging service 乌班图_microsoft_03

$ sudo supervisorctl reload #重启

 访问前,注意打开防火墙端口

1of2 a start job is running for system logging service 乌班图_.netcore_04

5、添加ASP.NET Core supervisord守护进程子文件

分配 conf.d文件夹可读可写权限

$ sudo chmod 777 /etc/supervisor/conf.d

由于文件编码文件,自己电脑上创建文件在上传非常容易出错,直接vim 又非常不好编辑。这里我推荐个办法,就是把supervisor/supervisord.conf下载到桌面,用下面的内容覆盖掉就行了。重命名cellreport.conf。

这里大家可能会奇怪,为什么是配置项目是cellreport.conf文件,而不是cellreport.ini。根本原因在于supervisor/supervisord.conf最下面两行定义的是读取的是需要启动的被守护进程

[include]
files = /etc/supervisor/conf.d/*.conf

他指向的是/etc/supervisor/conf.d文件夹,要读取的是.conf。

[program:cellreport]
command=dotnet reportWeb/reportWeb.dll  --urls http://*:5000 --ContentRoot . --WebRoot ../wwwroot 
directory=/www
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/cellreport.out.log
stderr_logfile=/www/cellreport.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d

写完后,上传到 /etc/supervisor/conf.d文件夹下。

其中:

[program:cellreport] 要守护的程序名称

command= 要知名的命令

directory 程序文件目录

autorestart 是否自动启动

stderr_logfile 此处为aspnet程序的supervisor写的日志,很多时候启动不了可以查看此日志找原因
stdout_logfile 此处为aspnet程序的supervisor写的日志
user=root  此处为系统登入用户名
其余的是通用配置

$ sudo supervisorctl start cellreport #启动程序[program:cellreport]

在web查看程序,如果启动不了 会有报错提示 

1of2 a start job is running for system logging service 乌班图_上传_05

 显示 staring则正常启动了。