适合生产环境部署(适合非docker环境部署)

SupervisorLinux/Unix 系统下的一个进程管理工具,可靠稳定,很多著名框架的进程守护都推荐使用该软件。

安装 Supervisor

这里仅举例 CentOS 系统下的安装方式:

  1. # 安装 epel 源,如果此前安装过,此步骤跳过
  2. yum install -y epel-release
  3. yum install -y supervisor // ubutuapt-get install supervisor

创建一个配置文件

  1. cp /etc/supervisord.conf /etc/supervisord.d/supervisord.conf
  2. #编辑刚才新复制的配置文件
  3. vim /etc/supervisord.d/supervisord.conf
  4. # 在[include]节点前添加以下内容,保存
  5. [program:GoSkeleton]
  6. # 设置命令在指定的目录内执行
  7. directory=/home/wwwroot/GoProject2020/goskeleton/
  8. #例如,我们编译完以后的go程序名为:main
  9. command= /bin/bash -c ./main
  10. user=root
  11. # supervisor 启动时自动该应用
  12. autostart=true
  13. # 进程退出后自动重启进程
  14. autorestart=true
  15. # 进程持续运行多久才认为是启动成功
  16. startsecs = 5
  17. # 启动重试次数
  18. startretries = 3
  19. #指定日志目录(将原来在调试输出界面的内容统一写到指定文件)
  20. stdout_logfile=/home/wwwroot/GoProject2020/Storage/logs/out.log
  21. stderr_logfile=/home/wwwroot/GoProject2020/Storage/logs/err.log

配置 Supervisor 可视化管理界面

1.编辑配置文件 /etc/supervisord.d/supervisord.conf ,将以下注释打开即可。

  1. [inet_http_server]
  2. port=0.0.0.0:9001
  3. #设置可视化管理账号
  4. username=user_name
  5. #设置可视化管理密码
  6. password=user_pass

启动 Supervisor

  1. supervisord -c /etc/supervisord.d/supervisord.conf

使用 supervisorctl 命令管理项目

此时你也可以通过浏览器打开 ip:9001 地址,输入账号、密码对应用程序进行可视化管理。

  1. # 启动 Goskeleton 应用
  2. supervisorctl start Goskeleton
  3. # 重启 GoSkeleton 应用
  4. supervisorctl restart Goskeleton
  5. # 停止 GoSkeleton 应用
  6. supervisorctl stop Goskeleton
  7. # 查看所有被管理项目运行状态
  8. supervisorctl status
  9. # 重新加载配置文件,一般是增加了新的项目节点,执行此命令即可使新项目运行起来而不影响老项目
  10. supervisorctl update
  11. # 重新启动所有程序
  12. supervisorctl reload