Supervisor monitors gearman tasks

Source: Internet
Author: User

To install a supervisor, you can directly use Yum install supervisord. However, the version may be earlier. Refer to the official method:

easy_install supervisor

Http://supervisord.org/installing.html#installing-to-a-system-with-internet-access

Add service, VIM/etc/init. d/supervisord, and modify the file attributes to execute chmod 777/etc/init. d/supervisord.

#!/bin/bash## supervisord   This scripts turns supervisord on## Author:       Mike McGrath <[email protected]> (based off yumupdatesd)#               Jason Koppe <[email protected]> adjusted to read sysconfig,#                   use supervisord tools to start/stop, conditionally wait#                   for child processes to shutdown, and startup later## chkconfig:    345 83 04## description:  supervisor is a process control utility.  It has a web based#               xmlrpc interface as well as a few other nifty features.# processname:  supervisord# config: /etc/supervisord.conf# pidfile: /var/run/supervisord.pid## source function library. /etc/rc.d/init.d/functions# source system settings[ -e /etc/sysconfig/supervisord ] && . /etc/sysconfig/supervisordRETVAL=0start() {    echo "Starting supervisord: "    if [ -e $PIDFILE ]; then         echo "ALREADY STARTED"        return 1    fi    # start supervisord with options from sysconfig (stuff like -c)    /usr/bin/supervisord $OPTIONS        # show initial startup status    /usr/bin/supervisorctl $OPTIONS status        # only create the subsyslock if we created the PIDFILE    [ -e $PIDFILE ] && touch /var/lock/subsys/supervisord}stop() {    echo -n "Stopping supervisord: "    /usr/bin/supervisorctl $OPTIONS shutdown    if [ -n "$WAIT_FOR_SUBPROCESSES" ]; then         echo "Waiting roughly 60 seconds for $PIDFILE to be removed after child processes exit"        for sleep in  2 2 2 2 4 4 4 4 8 8 8 8 last; do            if [ ! -e $PIDFILE ] ; then                echo "Supervisord exited as expected in under $total_sleep seconds"                break            else                if [[ $sleep -eq "last" ]] ; then                    echo "Supervisord still working on shutting down. We‘ve waited roughly 60 seconds, we‘ll let it do its thing from here"                    return 1                else                    sleep $sleep                    total_sleep=$(( $total_sleep + $sleep ))                fi            fi        done    fi    # always remove the subsys.  we might have waited a while, but just remove it at this point.    rm -f /var/lock/subsys/supervisord}restart() {        stop        start}case "$1" in    start)        start        RETVAL=$?        ;;    stop)        stop        RETVAL=$?        ;;    restart|force-reload)        restart        RETVAL=$?        ;;    reload)        /usr/bin/supervisorctl $OPTIONS reload        RETVAL=$?        ;;    condrestart)        [ -f /var/lock/subsys/supervisord ] && restart        RETVAL=$?        ;;    status)        /usr/bin/supervisorctl $OPTIONS status        RETVAL=$?        ;;    *)        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"        exit 1esacexit $RETVAL

 

Configure echo_supervisord_conf>/etc/supervisord. conf

Join the gearman task. The following is the task pushed by Baidu cloud.

Vim/etc/supervisord. conf

[program:APNS_PUSH]command=/usr/bin/php /data2/www/web/apns/worker_origin.phpprocess_name=APNS_PUSH_%(process_num)snumprocs=2autostart=trueautorestart=trueuser=nginxstdout_logfile=/data2/log/push/push_%(process_num)s.logstderr_logfile=/data2/log/push/push.error.log

Start gearman, start supervisord, PS-Ef | grep XXX, and check whether the task has been executed.

You can also use gearman-monitor to view the gearman task status.

 

Supervisor monitors gearman tasks

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.