由于公司服务器是linux,刚好自己学了core,所以就使用。net core进行开发部署,以下是程序如何在linux中部署和运行的记录

环境:

Centos 7

已安装.Net core 2.0.0  .Net core 1.1.2

1、Supervisor安装

  • yum 安装

yum install supervisor

(阿里云验证通过)

 

  • easy_install 安装

 如果yum安装无法找到资源,可以通过easy_install

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python

安装supervisor

easy_install supervisor

 

 

2、配置supervisor

  • 在etc下创建目录,并赋权限

              mkdir -m 700 -p /etc/supervisor

  • 在目录“ /etc/supervisor”下创建配置文件

              echo_supervisord_conf > /etc/supervisor/supervisord.conf

  • 修改配置文件

               vim /etc/supervisor/supervisord.conf

           在文件末尾添加,注意首尾需无空格,需顶格

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

  • 在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”

            mkdir -m 700 /etc/supervisor/conf.d

 

 

3、创建进程配置文件

  vim /etc/supervisor/conf.d/MyDotNetName.conf

"MyDotNetName"可以为dotnet core 入口dll文件名字 ,插入内容,注意首尾需无空格,需顶格:

 

[program:MyDotNetName]

command=/bin/bash -c "dotnet MyDotNetName.dll"

directory=/usr/PublishOutput/
stderr_logfile=/var/log/MyDotNetName.error.log

stdout_logfile=/var/log/MyDotNetName.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT

autostart=true
autorestart=true

startsecs=3

 

[program:MyDotNetName] ;显示名称

command=/bin/bash -c "dotnet MyDotNetName.dll"  ;运行命令,启动dotnet进程

directory=/usr/PublishOutput/   ;MyDotNetName目录

stderr_logfile=/var/log/MyDotNetName.error.log  ;错误日志文件

stdout_logfile=/var/log/MyDotNetName.stdout.log  ;日志文件

environment=ASPNETCORE_ENVIRONMENT=Production  ;进程环境变量

user=root   ;进程执行用户

autostart=true  ;自动启动 autorestart=true   ;是否自动重启

startsecs=3     ;自动重启间隔时间


4、创建supervisor 自启动服务

vim /etc/systemd/system/supervisor.service

[Unit]

Description=supervisor

 

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

ExecStop=/usr/bin/supervisorctl shutdown

ExecReload=/usr/bin/supervisorctl reload

KillMode=process

Restart=on-failure

RestartSec=42s

 

[Install]

WantedBy=multi-user.target

 

使配置生效

systemctl daemon-reload

设置服务开机启动,即设置enable

systemctl enable supervisor.service

验证是否开机启动 systemctl is-enabled supervisord

启动服务

systemctl start supervisor.service

 

5、验证dotnet进程是否启动

使用命令“ps -ef | grep dotnet”查看dotnet 是否运行

[root@machine ~]# ps -ef | grep dotnet

root      2281  2280  0 15:27 ?        00:00:00 dotnet MyDotNetName.dll

root      2302  2217  0 15:30 pts/0    00:00:00 grep --color=auto dotnet

以上信息转自 文章 https://www.cnblogs.com/hobinly/p/7382038.html

配置supervisor  守护进程时,可能会遇到一些坑,在此我记录了一些,以便于博友不走弯路

错误1:

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting

解决方法:

find / -name supervisor.sock

unlink /name/supervisor.sock //配置连接

错误2:Supervisorctl error: unix:///var/run/supervisord.sock refused connection (Supervisorctl 无法启动)

解决方法

sudo supervisord -c /etc/supervisord.conf

附:

kill -9 进程id --杀死进程

 

ps -ef --列出所有进程

 

netstat -ntlp --列出当前http进程

 

nginx 命令(今入nginx sbin):

nginx -s start 启动

nginx -s quit 停止

 

 

supervisor--常用命令

sudo service supervisor stop 停止supervisor服务

 

sudo service supervisor start 启动supervisor服务

 

备注:若命令 sudo service supervisor stop  提示 Redirecting to /bin/systemctl stop supervisor.service,则按提示命令执行

 

supervisorctl shutdown #关闭所有任务

 

supervisorctl stop|start program_name #启动或停止服务

 

supervisorctl status #查看所有任务状态

 

sudo supervisord -c /etc/supervisor/supervisord.conf --重新配置supervisor服务

 

supervisorctl reload --重新加载配置(supervisor服务已运行)

 

ps -ef|grep dotnet 查看所有dotnet守护进程

nohup 命令 &  使程序后台运行(若只使用&的话,终端关闭后进程会自动关闭), 此方法不支持开机自启,若要开机自启可以配合使用 supervisor或者自行度娘

 

redis:

安装redis

$ wget http://download.redis.io/releases/redis-4.0.8.tar.gz

$ tar xzf redis-4.0.8.tar.gz

$ cd redis-4.0.8

$ make

 

开启redis服务

$ src/redis-server

 

运行redis

$ src/redis-cli

redis> set foo bar

OK

redis> get foo

"bar"

 

 

linux mysql安装:https://www.cnblogs.com/bigbrotherer/p/7241845.html