• 021_supervise进行管理利器


    一、公司的类似ansible的工具也是用supervise管理的

    [admin@mjyall-test-1 /service/ansible-oc-agent]$ ps -ef|grep 19070
    root     19070 19068  0 00:44 ?        00:00:00 svscan /service
    root     19072 19070  0 00:44 ?        00:00:00 supervise ansible-oc-agent
    root     19073 19070  0 00:44 ?        00:00:00 supervise log
    [admin@mjyall-test-1 /service/ansible-oc-agent]$ sudo tree .
    .
    ├── log
    │   ├── run
    │   └── supervise
    │       ├── control
    │       ├── lock
    │       ├── ok
    │       └── status
    ├── run
    └── supervise
        ├── control
        ├── lock
        ├── ok
        └── status
    
    3 directories, 10 files
    [admin@mjyall-test-1 /service/ansible-oc-agent]$ cat run
    #!/bin/bash
    
    . /etc/profile
    
    mkdir -p /opt/ansible-oc-agent/cache
    cd /opt/eoc-agent
    
    exec 2>&1
    exec /opt/ansible-oc-agent/bin/startup.sh
    

    二、常用命令集合。

    #官网:https://cr.yp.to/daemontools/svc.html
    svc -d /service/eoc-agent && sleep 10  &&  svc -k /service/eoc-agent  && svc -u /service/eoc-agent       #重启eoc-agent  
    svstat /service/eoc-agent  #查看jyalloc-agent状态
       svc -d /service/eoc-agent  关闭
       svc -u /service/eoc-agent  打开

    三、daemontools自带命令详解

    [root@xxx-opstools-2 /opt/ops/cmdb]# rpm -ql daemontools
    /usr/bin/envdir
    /usr/bin/envuidgid
    /usr/bin/fghack
    /usr/bin/multilog
    /usr/bin/pgrphack
    /usr/bin/readproctitle
    /usr/bin/setlock
    /usr/bin/setuidgid
    /usr/bin/softlimit
    /usr/bin/supervise
    /usr/bin/svc
    /usr/bin/svok
    /usr/bin/svscan
    /usr/bin/svscanboot
    /usr/bin/svstat
    /usr/bin/tai64n
    /usr/bin/tai64nlocal
    cat /usr/lib/systemd/system/daemontools.service      systemctl status daemontools   #查看通过daemontools控制的服务的状态

       [Unit]
       Description=daemontools
       After=sysinit.target

       [Service]
       ExecStart=/usr/bin/svscanboot
       Restart=always

       [Install]
       WantedBy=multi-user.target

    (1)envdir   设置环境变量用的, Reference:https://cr.yp.to/daemontools/envdir.html

    (2)envuidgid  设置运行脚本的uid and gid, Reference:https://cr.yp.to/daemontools/envuidgid.html

    (3)fghack   fghack is an anti-backgrounding tool.   Reference:https://cr.yp.to/daemontools/fghack.html

    (4)multilog  multilog reads a sequence of lines from stdin and appends selected lines to any number of logs.

    root      2386  2384  0  2017 ?        00:00:25 multilog t s10485760 n5 /opt/eoc-agent/logs
    

    <1>解释下这里"t"时间戳的意义:

    Timestamping
    The action
         t
    inserts an @, a precise timestamp, and a space in front of each line, using the same format as tai64n. This is required to be the first action.
    Patterns apply to the line after the timestamp is inserted. For example, if
    
         multilog t '-*' '+* fatal: *' ./main
    reads the line
         fatal: out of memory
    then it will log a line such as
         @400000003b4a39c23294b13c fatal: out of memory
    with the first * matching the timestamp.
    You can use tai64nlocal to convert these timestamps to human-readable form.
    

    <2>Automatically rotated logs日志文件解释

    日志文件大小size must be between 4096 and 16777215. The default maximum file size is 99999.单位为byte

    @表示已经写完的老的文件,current表示当前正在写的

    .s: This file is completely processed and safely written to disk.
    .u: This file was being created at the moment of an outage. It may have been truncated. It has not been processed.
    

    (5)pgrphack    pgrphack runs a program in a separate process group.

    (6)readproctitle maintains an automatically rotated log in memory for inspection by ps.

    (7)setlock runs another program with a file locked.

    (8)setuidgid runs another program under a specified account's uid and gid.

    (9)softlimit runs another program with new resource limits.

    (10)supervise starts and monitors a service.

    也可以用svc()进行启动<https://cr.yp.to/daemontools/svc.html>.

    状态查看使用svstat()<https://cr.yp.to/daemontools/svstat.html>.

    svok检查是否服务是ok的<https://cr.yp.to/daemontools/svok.html>.

    svscan to reliably start a collection of supervise processes(批量启动supervisor服务,上限为1000个子目录,而且它是永久启动的,并且会不断扫描新的目录)<https://cr.yp.to/daemontools/svscan.html>.

    (11)启动服务

    svscanboot starts svscan in the /service directory

    (12) tai64n puts a precise timestamp on each line.

    (13)tai64nlocal converts precise TAI64N timestamps to a human-readable format.

     If a line begins with @, tai64nlocal looks for a timestamp after the @, in the format printed by tai64n, and writes the line to stdout with the timestamp converted to local time in ISO format: YYYY-MM-DD HH:MM:SS.SSSSSSSSS.

    Reference:

    https://cr.yp.to/daemontools.html

    https://isotope11.com/blog/manage-your-services-with-daemontools

    https://blog.csdn.net/u012373815/article/details/70217030

     

  • 相关阅读:
    使用IDEA工具配置和运行vue项目(详细其中的坑)
    VSCode打开已有vuejs项目
    vue中遇到的问题:Error: Cannot find module 'chalk'
    Qt源码分析之信号和槽机制(QMetaObject是一个内部struct)
    “ping”命令的原理就是向对方主机发送UDP数据包,HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”
    程序员保值的4个秘密(要当语言和框架方面的专家,高难技术,业务,算法,产品意识与思维(把细节做好))
    C++ 多线程阻塞 (多线程同步)(MsgWaitForMultipleObjects)(连着消息一起控制,牛)
    兴趣与坚持:程序员从初级到中级10个秘诀(要学另一门语言,学会搜索,找到真正令你着迷的东西,不能为工资、要真正享受工作)
    Spring MVC 数据回显
    内存问题检测神器:Valgrind
  • 原文地址:https://www.cnblogs.com/itcomputer/p/9206816.html
Copyright © 2020-2023  润新知