由于公司服务器是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