暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Daemontools 守护进程小工具

小璇坨坨 2019-07-01
580

用daemontools 安装守护进程,用于管理工作当中经常挂起的服务。


安装方法:

    wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
    tar xvzf daemontools-0.76.tar.gz
    cd admin/daemontools-0.76
    package/install


    如果出现错误:

    /usr/bin/ld: errno: TLS defini  tion in lib/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o

    解决办法:

      vim src/conf-cc
      # 在gcc 一行末尾增加
      -include usr/include/errno.h
      # 更改后
      gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings -include usr/include/errno.h


      启动daemontools

      daemontools是一组service管理工具,其中svscanboot工具用来启动svscan工具。可以通过以下命令启动svscanboot

        /usr/local/bin/svscanboot &


        设置开机自启动:http://cr.yp.to/daemontools/start.html


        启动之后,查看进程,可以发现svscan做为svscanboot的子进程在运行

          [root@bjdfkjy-46-124 qb_nginx]# ps aux |grep svs
          root 5297 0.0 0.0 113124 2704 pts/0 S 12:16 0:00 bin/sh usr/local/bin/svscanboot
          root 5299 0.0 0.0 4344 1100 pts/0 S 12:16 0:00 svscan /service
          root 6375 0.0 0.0 112656 2276 pts/0 S+ 12:18 0:00 grep --color=auto svs


          配置

          启动svscanboot之后,相应的svscan进程也启动起来,其中参数/service/ 就是管理配置文件的目录

          在services目录创建run脚本(名字必须是run而且权限是755),例如nginx目录

            [root@bjdfkjy-46-124 ~]# tree /service/
            /service/
            └── nginx
            ├── run
            └── supervise
            ├── control
            ├── lock
            ├── ok
            └── status
            [root@bjdfkjy-46-124 ~]# cat /service/nginx/run
            #!/bin/sh
            cd /apps/soft/qb_nginx &&
            gunicorn -w 1 -b 0.0.0.0:8080 qb_nginx.wsgi:application --reload >> ./log/out.log 2>&1 &



            svscanboot负责启动svscan服务,svscan管理supervise进程。而具体的客户进程,是通过supervise进程来统一管理的


            常用命令:

              启动被管理的进程 (配置完后无需执行svc命令)
              svc -u /service/nginx/
              关闭被管理的进程(不会关闭daemontools supervise进程)
               svc -d /service/nginx/
              查看service状态
               svstat /service/nginx/
              移除service
              svc -dx /opt/svc/nginx/


              文章转载自小璇坨坨,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论