zoukankan      html  css  js  c++  java
  • [svc]runinit管理多进程

    runinit启动小程序测试

    与Supervisord类似的工具包括monit, daemontools和runit。

    我还发现个神器,专门针对单容器启动多进程的神器s6: https://github.com/just-containers/s6-overlay

    参考: https://github.com/faisyl/alpine-runit/blob/master/Dockerfile
    https://segmentfault.com/a/1190000006644578

    安装

    # apt-get install runit
    
    如果是centos,则可以使用yum进行安装,但是默认情况下centos软件仓库里并没有runit,所以需要先配置相应的仓库:
    # curl -s https://packagecloud.io/install/repositories/imeyer/runit/script.rpm.sh | sudo bash
    # sudo yum install runit-2.1.1-7.el7.centos.x86_64
    

    runinit启动小程序测试

    - 创建目录(2个run文件,+x)
    root@no1:~# tree test/
    test/
    ├── log
    │   └── run
    └── run
    
    - 新建run(程序启动命令)
    root@no1:~# cat test/run 
    #!/bin/sh
    exec 2>&1
    echo $date
    echo "-------------------"
    
    - 新建run(日志处理)
    root@no1:~# cat test/log/run 
    #!/bin/sh
    LOGDIR=/var/log/test
    mkdir -p $LOGDIR
    # Prefix each line with a timestamp
    exec svlogd -tt $LOGDIR
    
    - 让runint管理
    cp -rp test /etc/service/
    
    
    - 查看运行状态
    root@no1:~# tail -f /var/log/test/current 
    2017-12-28_10:42:48.60753 
    2017-12-28_10:42:48.60757 -------------------
    2017-12-28_10:42:49.60933 
    

    查看calico使用runinit怎么启动多进程的

    docker run -it --rm quay.io/calico/node sh
    
    $ ls available/
    bird               bird6              calico-bgp-daemon  confd              felix              libnetwork
    
    $ cat available/bird/run 
    #!/bin/sh
    exec 2>&1
    exec bird -R -s /var/run/calico/bird.ctl -d -c /etc/calico/confd/config/bird.cfg
    
    $ cat available/bird/log/run 
    #!/bin/sh
    LOGDIR=/var/log/calico/bird
    mkdir -p $LOGDIR
    # Prefix each line with a timestamp
    exec svlogd -tt $LOGDIR
    
    
    - 查看进程的日志(时间是runinit搞的)
    tail -f /var/log/test/current 
    2017-12-28_13:15:24.81191 
    2017-12-28_13:15:24.81196 -------------------
    2017-12-28_13:15:25.81559 
    2017-12-28_13:15:25.81565 -------------------
    
  • 相关阅读:
    计算某一日期是在一年中第几周
    动态生成web表-asp.net table
    sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据
    循环取月的三位英语名 Jan Feb
    Python面向对象编程
    算法
    UDP Sockets in C#
    C++ 11
    GNU Make
    C++ 11
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8137263.html
Copyright © 2011-2022 走看看