使用 s6-svscan 进行进程管理,docker supervisord 替代者

news/2024/11/28 13:49:42/

一  软件简介

      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 脚本了。


http://www.ppmy.cn/news/749395.html

相关文章

使用 Apple Watch S6 测量血氧教程

Apple Watch 的健康特性,一直是苹果重点打造和宣传的亮点。最近发布的 watchOS 7 和 Apple Watch Series 6,则带来了睡眠监测与血氧监测两大健康新功能。下面我们来看一下如何使用 Apple Watch S6 测量血氧。 什么是血氧 血氧水平是指由血红细胞从肺部…

Ubuntu下用户层网络使用

NetworkManager service 的使用 查看服务状态 systecmctl status NetworkManager重启服务 systemctl restart NetworkManager3 开机自启 systemctl enable NetworkManager systemctl disable NetworkManagernmcli 的使用 查看连接 nmcli con show查看设备 nmcli dev sho…

Tomcat:热加载和热部署配置(简洁明了)

Tomcat:热加载和热部署配置(简洁明了) 前言一、热加载二、热部署 前言 热部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。 一、热加载 热加载:在server.xml -> c…

联想3月16日凌晨起预售乐Pad平板电脑

联想乐Pad平板电脑将于3月16日在淘宝和联想商场展开预售,但具体价格还没有最后敲定。   今天,联想淘宝旗舰店已经在淘宝商城打出广告,宣布在3月16日凌晨展开预售,并在广告中宣称“联想乐Pad更懂中国消费者。”目前,已…

联想笔记本无法访问百度,访问其它一切正常(前提有网络)

概述: 不知道又没有人碰到或者有人咨询你一个问题就是,笔记本有网络就是不能访问百度、等各搜索引擎工具,这给我们使用电脑带来非常糟糕的体验,每一个用电脑的人想必都会使用的搜索引擎吧。 解决办法: 资源管理输入&am…

仿 Lenovo商城首页

一.效果图 还有动态效果噢,图片看不出来 二. 重点难点 轮播图的实现 - 3秒自动切换 - 左右箭头切换 - 圆点切换 js代码如下 //轮播图 //3秒自动切换var imgdocument.querySelector("#banner-img");var num1;setInterval(function(){num;if(num9){num1…

基于Java的电脑商城的设计与实现(附源码地址)

摘 要 电脑商城系统主要是指一种基于商城网站的电子商务平台,为用户提供在线购物、支付、配送等一系列服务。随着互联网的不断发展,电子商务也越来越普及,成为了一种重要的购物方式。而在这其中,电脑及其周边产品销售一直是电子商…

spring.boot 随笔0 springFactoriesInstance入门

0. 其实也没有那么入门 明天还要上班,速度write,直接放一张多样性比较好的 spring.factories 文件(取自 spring-boot-2.3.4.RELEASE.jar) # PropertySource Loaders org.springframework.boot.env.PropertySourceLoader\ org.springframework.boot.env…