init.d script não está criando um arquivo pid

0

Estou no Ubuntu 16.04 e quero usar o monit para monitorar o gunicorn, mas estou diante de dois problemas ...

  1. Não foi feito nenhum arquivo pid, embora o script init.d pareça especificar um.

  2. Como posso monitorar algo como o gunicorn, que gera novos processos o tempo todo? Eu executo vários sites de django em um servidor e gostaria de saber quantos recursos cada um deles está usando.

Aqui está o script init.d:

#!/bin/sh
### BEGIN INIT INFO
# Provides:     gunicorn
# Required-Start:   $all
# Required-Stop:    $all
# Should-Start:     $local_fs
# Should-Stop:      $local_fs
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

NAME=gunicorn
DESC="Gunicorn workers for site"

HELPER=/usr/sbin/gunicorn-debian
PID_DIR=/var/run/gunicorn
LOG_DIR=/var/log/gunicorn
CONF_DIR=/etc/gunicorn.d

test -x $HELPER || exit 0

[ -r /etc/default/$NAME ] && . /etc/default/$NAME

. /lib/lsb/init-functions

Action() {
    mkdir -p $PID_DIR
    mkdir -p $LOG_DIR
    chmod 750 $LOG_DIR
    chown user:user $LOG_DIR

    log_daemon_msg "$1"
    shift

    if $HELPER \
        --conf-dir=$CONF_DIR \
        --pid-dir=$PID_DIR \
        --log-dir=$LOG_DIR \
        "$@"
    then
        log_success_msg
    else
        log_failure_msg
        exit 1
    fi
}

action="$1"
shift

case "$action" in
  start)
    Action "Starting $DESC" start "$@"
    ;;
  stop)
    Action "Stopping $DESC" stop "$@"
    ;;
  reload)
    Action "Reloading $DESC" reload "$@"
    ;;
  restart|force-reload)
    $0 stop "$@"
    $0 start "$@"
    ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload} [configs]" >&2
    exit 1
    ;;
esac

exit 0
    
por deltaskelta 16.11.2016 / 09:24

1 resposta

0

Você pode usar o supervisord para essa finalidade. Gunicorn realmente recomenda isso. Consulte o link

Eu rodei vários sites do Django no meu próprio VPS e usei o supervisord para gerenciá-los. Aqui está uma configuração de amostra:

[program:blog]
command = /var/www/blog/django-gunicorn.sh
autostart = true

[program:extra]
command = /var/www/extra/django-gunicorn.sh
autostart = true
    
por 16.11.2016 / 12:02