49

我厌倦了启动主管,但出现错误。任何人都可以帮忙吗?谢谢

/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

配置文件(位于/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
4

7 回答 7

68

首先,在您的控制台或终端上输入

ps -ef | grep supervisord

你会得到一些supervisord的pid,就像这些

根 2641 12938 0 04:52 pts/1 00:00:00 grep --color=auto supervisord

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

如果你得到这样的输出,你的 pid 是第二个。那么如果你想关闭你的主管,你可以这样做

kill -s SIGTERM 29646

希望它有帮助。参考:http ://supervisord.org/running.html#signals

于 2014-05-06T21:56:44.137 回答
48
sudo unlink /tmp/supervisor.sock

.sock文件在/etc/supervisord.conf[ unix_http_server ] 的文件配置值中定义(默认为 /tmp/supervisor.sock)。

于 2013-01-23T12:41:55.427 回答
19
$ 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
于 2017-11-15T06:31:52.383 回答
16

尝试运行这些命令

sudo unlink /run/supervisor.sock

sudo /etc/init.d/supervisor start
于 2013-07-08T07:10:34.957 回答
10

这对我有用。在终端中运行以下命令(适用于 Linux 机器)

要检查进程是否正在运行:

sudo systemctl status supervisor

要停止该过程:

sudo systemctl stop supervisor
于 2019-02-04T22:42:56.687 回答
5

从 version 开始3.0a11,您可以这样做:

sudo kill -s SIGTERM $(sudo supervisorctl pid)它跳到函数的后面supervisorctl pid

于 2017-02-14T16:07:44.017 回答
3

          There are many answers already available. I shall present a cleaner way to shut down supervisord.

          supervisord by default, creates a file named supervisord.pid in the directory where supervisord.conf file exists. That file consists the pid of the supervisord daemon. Read the pid from the file and kill the supervisord process.

          However, you can configure where the supervisord.pid file should be created. Refer this link to configure it, http://supervisord.org/configuration.html

于 2017-02-06T12:58:48.650 回答