Ubuntu/CentOS使用Supervisor管理进程

<h2></h2>
<h2></h2>
<h2>1.安装supervisor</h2>

<span class="hljs-meta">#</span><span class="bash">pip  </span>
pip install supervisor  
<span class="hljs-meta">  
#</span><span class="bash">ubuntu  </span>
sudo apt-get install supervisor  
<span class="hljs-meta">  
#</span><span class="bash">centos (可能需要先安装epel源) </span>
yum install epel-release
yum -y install supervisor  

<div data-unique="2.启动"></div>
<h2>2.启动</h2>
安装完后如supervisor没启动,可以使用如下,手动启动

<span class="hljs-meta">#</span><span class="bash">启动supervisor  </span>
/usr/bin/supervisord -c /etc/supervisord.conf  
或者
supervisord -c /etc/supervisord.conf

进入 cd /etc 目录 找到supervisord.conf 配置文件和supervisord.d 文件夹,编辑supervisord.conf文件,拉到最底部我们可以看到

files = supervisord.d/*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件

 
<h2>3.添加开机自启动</h2>

<span class="hljs-comment">#创建supervisord.service  </span>
<span class="hljs-attribute">vi</span> /usr/lib/systemd/system/supervisord.service  
  
<span class="hljs-comment">#supervisord.service文件内容  </span>
[Unit]  
Description=Supervisor  
  
[Service]  
Type=forking  
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf  
ExecStop=/usr/bin/supervisorctl <span class="hljs-variable">$OPTIONS</span> shutdown  
ExecReload=/usr/bin/supervisorctl <span class="hljs-variable">$OPTIONS</span> reload  
KillMode=process  
Restart=<span class="hljs-literal">on</span>-failure  
RestartSec=<span class="hljs-number">42s</span>  
  
[Install]  
WantedBy=multi-user.target  

激活开机启动

<span class="hljs-meta">#</span><span class="bash">激活开机启动  </span>
systemctl enable supervisord.service  
<span class="hljs-meta">  
#</span><span class="bash">如修改了supervisord.service配置文件需重新加载  </span>
systemctl daemon-reload  

各种开机自启动脚本:https://github.com/Supervisor/initscripts
<div data-unique="4.创建一个配置文件"></div>
<h2>4.创建一个配置文件</h2>

[<span class="hljs-meta">program:DeployLinux</span>]   <span class="hljs-meta">#DeployLinux  为程序的名称</span>
command=dotnet DeployLinux.dll <span class="hljs-meta">#需要执行的命令</span>
directory=/home/publish <span class="hljs-meta">#命令执行的目录</span>
environment=ASPNETCORE__ENVIRONMENT=Production <span class="hljs-meta">#环境变量</span>
user=root <span class="hljs-meta">#用户</span>
stopsignal=INT 
autostart=<span class="hljs-literal">true</span> <span class="hljs-meta">#是否自启动</span>
autorestart=<span class="hljs-literal">true</span> <span class="hljs-meta">#是否自动重启</span>
startsecs=<span class="hljs-number">3</span> <span class="hljs-meta">#自动重启时间间隔(s)</span>
stderr_logfile=/<span class="hljs-keyword">var</span>/log/ossoffical.err.log <span class="hljs-meta">#错误日志文件</span>
stdout_logfile=/<span class="hljs-keyword">var</span>/log/ossoffical.<span class="hljs-keyword">out</span>.log <span class="hljs-meta">#输出日志文件</span>

<span class="hljs-meta">#</span><span class="bash">加载配置文件 </span>
supervisorctl reread
<span class="hljs-meta">

</span><span class="bash">启动spring-app </span>

supervisorctl start spring-app
<span class="hljs-meta">

</span><span class="bash">查看进程状态 </span>

supervisorctl status

<h3>遇到的问题</h3>
添加要启动的程序配置文件后supervisor无法再启动,用systemctl status supervisor 命令查看状态发现有错误。

把添加的程序配置文件删除后再启动 supervisor可以正常启动,这样问题就是出现在了所添加的程序配置文件上。

比较奇怪的的是配置文件和另一台一样也会报错,需要把配置文件里面的一行命令删除后才正常。好奇怪,也不知道为什么。

apache添加多站点

 

之前一直使用宝塔面板搭建lnmp.最近在斐讯N1上跑Ubuntu 16.04,估计是宝塔对ARM的处理器适配还不是很好,lnmp没有一个能安装上的,无奈只有不用面板了(关键是面板太方便了)。看着教程安装了apache,不知道该如何下手啊,之前都是使用nginx。现在记录下apache下在一个主机上实现多站点的操作。

添加一个新的站点,例如A.com

首先在apache的配置文件夹/etc/apache2/sites-available下面添加一个文件A.com.conf(名字可以是其他的,看自己怎么命名)。

内容为

 

[info]

<VirtualHost *:80>
ServerName IP或者域名
ServerAdmin webmaster@localhost
DocumentRoot /var/www/nextcloud    #(这个是你站点的目录)

<Directory "/var/www/nextcloud/">
Options MultiViews FollowSymlinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

保存后执行a2ensite A.com(你的配置文件名称)

重启apache服务    service apache2 restart

这样一个站点就增加好了。

然后再用相同的方法增加站点B。B.com

 

如果使用的端口不是80或者443需要在/etc/apache2/ports.conf裏面加入你制定的端口。不然是訪問不了的!

其实也很简单。

 

 

ubuntu 添加開機自啟軟件方法

<div>
<h3></h3>
<h3>用systemd控制开机自启</h3>
cd /lib/systemd/system/ && sudo touch frps.service
sudo nano frps.service
在其中添加如下内容

[Unit]
Description=fraps daemon
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
<span class="hljs-comment">#启动服务的命令(此处xxx换做你的实际安装目录)</span>
ExecStart=xxx/frps -c xxx/frps.ini

[Install]
WantedBy=multi-user.target

然后启动frps
sudo systemctl start frps
应用自启
sudo systemctl enable frps
有关于systemd的知识请自行谷歌

</div>