我是靠谱客的博主 眼睛大天空,最近开发中收集的这篇文章主要介绍使用 s6-svscan 进行进程管理,docker supervisord 替代者,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一  软件简介

      s6-svscan 是一款类似于supervisord 的 Linux 程序管理软件,能够实现对程序进程的健康监控和主动重启等操作。

      考虑到 supervisord 默认不回显程序打印日志,这给 docker 的日志管理带来了麻烦,

      故本文采用  s6-svscan 代替 supervisord 进行程序管理。

二  使用方法

2.1    软件下载

        首先需要下载 s6 suite 软件 s6-overlay-amd64.tar.gz,

        下载地址 :https://github.com/just-containers/s6-overlay/releases/download/v1.19.1.1/s6-overlay-amd64.tar.gz

2.2    将 s6 软件打包到 docker 镜像

         即解压覆盖 /usr 目录即可

         Dockerfile 关键代码:ADD s6-overlay-amd64.tar.gz /usr/

2.3    编写服务启动脚本

        每个服务程序单独创建一个目录,内置一个名称为 run 的脚本和一个名称为 finish 的脚本,

        run 负责启动程序,finish 执行程序退出后的操作,run 脚本应该是长时运行的。

        例如,我的服务路径分布为:

         /service

               /app1

                     /run

                     /finish  

               /app2

                     /run

                     /finish

2.4     设置容器启动时执行 s6 启动相关服务

          启动命令很简单,传入服务脚本所在路径即可,这里即为  /usr/bin/s6-svscan /service

          Dockerfile 关键代码:CMD ["/usr/bin/s6-svscan", "/service"]

          这样,容器启动时就会扫描 /service 文件夹,执行对应的 run 脚本,当 run 脚本意外退出时,s6 会自动重启。

2.5     一个 s6 运行示例截图

          

2.6     日志显示情况

          

2.7     备注说明

          如果某个服务暂时不想通过 s6 自动启动,可以在其服务脚本文件夹内(与 run 同路径)放置一个名称为 down 的文件,

          这样 s6 就不会执行对应的 run 脚本了。

最后

以上就是眼睛大天空为你收集整理的使用 s6-svscan 进行进程管理,docker supervisord 替代者的全部内容,希望文章能够帮你解决使用 s6-svscan 进行进程管理,docker supervisord 替代者所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部