广州睿东网络科技有限公司是国内最专业的香港空间,云主机,香港VPS,香港服务器租用提供商,专注为国内站长提供高速且稳定的香港空间,云主机,香港VPS,香港服务器租用,欢迎您的选购!
当前位置:首页 -> 香港主机 -> 云服务器

阿里云服务器迁移记(六)-进程管理

云服务器 34℃ 1886评论

自动运行程序

我们上节部署了Gogs的服务器但是我们发现,如果我们退出了终端,则Gogs就停止了。这和php之类的脚本语言不同,我们需要后台运行我们的网站程序,这样我们退出终端后还可以访问。

Supervisor

Supervisor(http://supervisord.org/)
是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。

下面以CentOS7,Python2.7版本环境下,介绍Supervisor的安装与配置步聚:

1. 安装Python包安装管理器(easy_install)

easy_install是setuptools包里带的一个命令,使用easy_install实际上是在调用setuptools来完成安装模块的工作,所以安装setuptools即可。

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

2. 安装supervisor

easy_install supervisor

supervisor安装完成后会生成三个执行程序:

  • supervisord:supervisor的守护进程服务(用于接收进程管理命令)

  • supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)

  • echo_supervisord_conf:生成初始配置文件程序。

3.配置

运行echo_supervisord_conf程序生成supervisor的初始化配置文件

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包
并将我们的Gogs的配置文件复制到这个文件夹下

mkdir /etc/supervisor/config.d
cp /data/wwwroot/git.imchenchao.com/gogs/scripts/supervisor/gogs /etc/supervisor/config.d/gogs.ini

我们更改/etc/supervisor/supervisord.conf 文件
在最下面一行添加

[include]files = /etc/supervisor/config.d/*.ini

更改gogs.ini配置,我的设置如下

[program:gogs]directory=/data/wwwroot/git.imchenchao.com/gogscommand=/data/wwwroot/git.imchenchao.com/gogs/gogs webautostart=trueautorestart=truestartsecs=10stdout_logfile=/data/wwwlogs/git.imchenchao.com/gogs/stdout.logstdout_logfile_maxbytes=1MBstdout_logfile_backups=10stdout_capture_maxbytes=1MBstderr_logfile=/data/wwwlogs/git.imchenchao.com/gogs/stderr.logstderr_logfile_maxbytes=1MBstderr_logfile_backups=10stderr_capture_maxbytes=1MBuser = gitenvironment = HOME="/home/git", USER="git"

根据我设置的路径新建文件夹,不会自动创建,否则会报错

mkdir -p /data/wwwlogs/git.imchenchao.com/gogs

启动 supervisord

使用我们的配置文件启动

supervisord -c /etc/supervisor/supervisord.conf

管理 supervisorctl

Supervisorctl 是 supervisord 的一个命令行客户端工具,启动时需要指定与 supervisord 使用同一份配置文件,否则与 supervisord 一样按照顺序查找配置文件。

我们可以用一下的命令进行管理

# 停止某一个进程,program_name 为 [program:x] 里的 x
supervisorctl stop program_name
# 启动某个进程
supervisorctl start program_name
# 重启某个进程
supervisorctl restart program_name
# 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
supervisorctl stop groupworker:
# 结束 groupworker:name1 这个进程 (start,restart 同理)
supervisorctl stop groupworker:name1
# 停止全部进程,注:start、restart、stop 都不会载入最新的配置文件
supervisorctl stop all
# 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl reload
# 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
supervisorctl update


赞赏

投诉
喜欢 (1886)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: