Остановка надзора: выключение

Я устал начинать супервизор, но получаю ошибку. Может ли кто-нибудь помочь? благодаря

/etc/init.d/supervisord.

SUPERVISORD=/usr/local/bin/supervisord
SUPERVISORCTL=/usr/local/bin/supervisorctl
case $1 in
start)
        echo -n "Starting supervisord: "
        $SUPERVISORD
        echo
        ;;
stop)
        echo -n "Stopping supervisord: "
        $SUPERVISORCTL shutdown
        echo
        ;;
restart)
        echo -n "Stopping supervisord: "
        $SUPERVISORCTL shutdown
        echo
        echo -n "Starting supervisord: "
        $SUPERVISORD
        echo
        ;;
esac

Затем запустите эти

sudo chmod +x /etc/init.d/supervisord
sudo update-rc.d supervisord defaults
sudo /etc/init.d/supervisord start

И получив это:

Stopping supervisord: Shut down

Starting supervisord: /usr/local/lib/python2.7/dist-packages/supervisor/options.py:286: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  'Supervisord is running as root and it is searching '
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 /usr/local/bin/supervisord -h

Файл Conf (находится в /etc/supervisord.conf):

[unix_http_server]
file=/tmp/supervisor.sock; (the path to the socket file)

[supervisord]
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock; use a unix:// URL  for a unix socket

[program:myproject]
command=/home/richard/envs/myproject_stage/bin/python /home/richard/webapps/myproject/manage.py run_gunicorn -b 127.0.0.1:8002 --log-file=/tmp/myproject_stage_gunicorn.log
directory=/home/richard/webapps/myproject/
user=www-data
autostart=true
autorestart=true
stdout_logfile=/tmp/myproject_stage_supervisord.log
redirect_stderr=true

Ответ 1

sudo unlink /tmp/supervisor.sock

Этот файл.sock определен в файле конфигурации файла /etc/supervisord.conf [ unix_http_server ] (по умолчанию это /tmp/supervisor.sock).

Ответ 2

прежде всего, введите это на своей консоли или терминале

ps -ef | grep supervisord

Вы получите некоторый pid супервизора, как это

root 2641 12938 0 04:52 pts/1 00:00:00 grep --color = автоматическое наблюдение

root 29646 1 0 04:45? 00:00:00/usr/bin/python/usr/local/bin/supervisord

если вы получите такой вывод, ваш pid второй. то, если вы хотите закрыть свой супервизор, вы можете сделать это

kill -s SIGTERM 29646

надеюсь, что это будет полезно. ref: http://supervisord.org/running.html#signals

Ответ 3

Попробуйте запустить эти команды

sudo unlink /run/supervisor.sock

а также

sudo /etc/init.d/supervisor start

Ответ 4

$ ps aux | grep supervisor
alexamil         54253   0.0  0.0  2506960   6440   ??  Ss   10:09PM   0:00.26 /usr/bin/python /usr/local/bin/supervisord -c supervisord.conf

поэтому мы можем использовать:

$ pkill -f supervisord  # kill it

Ответ 5

Начиная с версии 3.0a11, вы можете сделать это с одним 3.0a11:

sudo kill -s SIGTERM $(sudo supervisorctl pid) который перескакивает на задней панели функции supervisorctl pid.

Ответ 6

Есть много ответов, которые уже доступны. Я представлю более чистый способ закрыть супервизор.

supervisord по умолчанию создает файл с именем supervisord.pid в каталоге, где существует файл supervisord.conf. Этот файл состоит из pid демона супервизора. Прочтите pid из файла и убейте процесс супервизора.

Однако вы можете настроить, где должен быть создан файл supervisord.pid. Перейдите по этой ссылке, чтобы настроить его, http://supervisord.org/configuration.html.

Ответ 7

Это то, что работает для меня. Запустите следующее в Терминале (для машин Linux)

Чтобы проверить, запущен ли процесс:

sudo systemctl status supervisor

Чтобы остановить процесс:

sudo systemctl stop supervisor