• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2010年2月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28123456
            78910111213


            專注即時(shí)通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請(qǐng)保留相關(guān)信息,這是大家對(duì)原創(chuàng)作者勞動(dòng)成果的自覺尊重!!如為您帶來不便,請(qǐng)于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊(cè)

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 215465
            • 排名 - 118

            最新評(píng)論

            閱讀排行榜

            原文:Linux進(jìn)程管理工具——supervisor

            介紹

            Supervisord是用Python實(shí)現(xiàn)的一款非常實(shí)用的進(jìn)程管理工具

            安裝

            這里用源碼

            supervisor-3.1.3.tar.gz
            tar -zxvf supervisor-3.1.3.tar.gz
            cd supervisor-3.1.3
            sudo python setup.py install

            生成默認(rèn)配置文件

            echo_supervisord_conf > /etc/supervisord.conf  

            修改默認(rèn)配置文件

            如需允許web界面和命令行訪問,修改inet_http_server配置

            [inet_http_server]  
            port=*:9001     ;這里*表示可以讓其他終端訪問supervisor web界面
            username=username ;  用戶名  
            password=password  ;  密碼  

            未知  具體功能,需修復(fù)

            [supervisorctl]
            serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
            serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket

            修改進(jìn)程

            復(fù)制代碼
            [program:test_http]
            command=python test_http.py 501  ; 被監(jiān)控的進(jìn)程路徑
            directory=/home/admin/soft/supervisor-3.1.3                ; 執(zhí)行前要不要先cd到目錄去,一般不用
            priority=1                    ;數(shù)字越高,優(yōu)先級(jí)越高
            numprocs=1                    ; 啟動(dòng)幾個(gè)進(jìn)程
            autostart=true                ; 隨著supervisord的啟動(dòng)而啟動(dòng)
            autorestart=true              ; 自動(dòng)重啟。。當(dāng)然要選上了
            startretries=10               ; 啟動(dòng)失敗時(shí)的最多重試次數(shù)
            exitcodes=0                   ; 正常退出代碼(是說退出代碼是這個(gè)時(shí)就不再重啟了嗎?待確定)
            stopsignal=KILL               ; 用來殺死進(jìn)程的信號(hào)
            stopwaitsecs=10               ; 發(fā)送SIGKILL前的等待時(shí)間
            redirect_stderr=true          ; 重定向stderr到stdout
            stdout_logfile=/home/jihite/log/supervisor.log
            復(fù)制代碼

            這里test_http.py 位于directory(/home/admin/soft/supervisor-3.1.3)目錄下

            test_http.py

            復(fù)制代碼
            import sys  
            import BaseHTTPServer  
            from SimpleHTTPServer import SimpleHTTPRequestHandler  
            HandlerClass = SimpleHTTPRequestHandler  
            ServerClass = BaseHTTPServer.HTTPServer  
            Protocol = "HTTP/1.0"  
              
            if __name__ == "__main__":
                if sys.argv[1:]:  
                    port = int(sys.argv[1])  
                else:  
                    port = 8000  
            
                server_address = ('10.125.24.105', port)  
                HandlerClass.protocol_version = Protocol  
                httpd = ServerClass(server_address, HandlerClass)  
                
                sa = httpd.socket.getsockname()  
                print "Serving HTTP on", sa[0], "port", sa[1], "..."  
                httpd.serve_forever() 
            復(fù)制代碼

            啟動(dòng)

            sudo  supervisord -c /etc/supervisord.conf

            管理

            命令管理

            復(fù)制代碼
            sudo supervisorctl
            status: 查看當(dāng)前運(yùn)行的進(jìn)程列表
            stop xxx: 停止某一個(gè)進(jìn)程(xxx),xxx為[program:theprogramname]里配置的值。
            start xxx: 啟動(dòng)某個(gè)進(jìn)程
            restart xxx: 重啟某個(gè)進(jìn)程
            stop groupworker: 重啟所有屬于名為groupworker這個(gè)分組的進(jìn)程(start,restart同理)
            stop all,停止全部進(jìn)程,注:start、restart、stop都不會(huì)載入最新的配置文件。
            
            復(fù)制代碼

            重新加載配置文件

            sudo  supervisorctl -c /etc/supervisord.conf

            界面管理

            異常

            1. Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

            For help, use /home/admin/idcp-check/virtualenv/bin/supervisord -h

            解決:(參考)

            sudo unlink /tmp/supervisor.sock
            or
            sudo unlink /var/run/supervisor.sock

            2. 啟動(dòng)不起來

            $sudo supervisorctl 
            create_roadnet_tasks3 FATAL Exited too quickly (process log may have details)
            解決:(參考

            Check if supervisor startsecs=0   #被監(jiān)控程序啟動(dòng)時(shí)持續(xù)時(shí)間

            3. 啟動(dòng)不起來,日志提示不能用root用戶啟動(dòng)

            Running a worker with superuser privileges when the
            worker accepts messages serialized with pickle is a very bad idea!

            If you really want to continue then you have to set the C_FORCE_ROOT
            environment variable (but please think about this before you do).

            解決

            復(fù)制代碼
            from celery import Celery, platforms
            app = Celery('tasks', broker='amqp://myuser:
            mypassword@localhost :5672/vhost')
            platforms.C_FORCE_ROOT = True        #加上這一行

            @app.task def add(x, y): return x + y
            復(fù)制代碼

             

            posted on 2016-09-23 14:41 思月行云 閱讀(1157) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 服務(wù)器\Ops
            亚洲午夜久久久久久久久久 | 久久天天躁狠狠躁夜夜2020一| 欧美午夜A∨大片久久| 久久亚洲中文字幕精品一区四| 思思久久99热免费精品6| 香蕉久久久久久狠狠色| 欧洲成人午夜精品无码区久久| 99久久人妻无码精品系列蜜桃| 国产精品免费久久久久影院| 亚洲国产精品无码久久久久久曰| 精品一二三区久久aaa片| 久久精品www| 少妇人妻综合久久中文字幕| 国产精品久久久久久久久鸭| 合区精品久久久中文字幕一区| 日韩乱码人妻无码中文字幕久久 | 99久久久精品免费观看国产| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 久久综合给久久狠狠97色| 国产精品一久久香蕉国产线看 | 国产精品久久久久a影院| 99国产欧美久久久精品蜜芽| 人妻无码久久精品| 国产精品18久久久久久vr| 一级做a爰片久久毛片毛片| 999久久久免费精品国产| 婷婷久久五月天| 国产综合成人久久大片91| 亚洲AV乱码久久精品蜜桃| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产aⅴ激情无码久久| 久久这里只有精品视频99| 国产一区二区三区久久精品| 97香蕉久久夜色精品国产 | 久久婷婷五月综合色奶水99啪| 国产精品伦理久久久久久| 久久久女人与动物群交毛片| 精品久久久一二三区| 久久久中文字幕日本| 国内精品久久国产大陆| 久久久久99精品成人片试看|