标签: supervisord

在 ubuntu 11.04 上安装 supervisord 时出错。有任何解决这个问题的方法吗?

# aptitude install supervisor
The following NEW packages will be installed:
  python-medusa{a} python-meld3{a} supervisor 
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/290 kB of archives. After unpacking 1,552 kB will be used.
Do you want to continue? [Y/n/?] Y
Selecting previously deselected package python-medusa.
(Reading database ... 35128 files and directories currently installed.)
Unpacking python-medusa (from .../python-medusa_0.5.4+clean-2ubuntu1_all.deb) ...
Selecting previously deselected package python-meld3.
Unpacking python-meld3 (from .../python-meld3_0.6.5-3build1_amd64.deb) ...
Selecting previously …
Run Code Online (Sandbox Code Playgroud)

debian python aptitude supervisord ubuntu-11.04

6
推荐指数
2
解决办法
4394
查看次数

supervisord 是否正常关闭?

我有需要任意时间关闭的进程,在 2 秒到几分钟之间。重要的是此进程正常退出(未终止)。我使用 supervisord 和 ubuntu 服务器来运行它。

当服务器收到 ACPI 关闭信号(来自 VPS 提供商的重新启动命令,这就是我假设的 EC2)时,supervisord(和整个系统)是否会在关闭序列期间等待所有子进程退出?

linux ubuntu supervisord

6
推荐指数
1
解决办法
4562
查看次数

尝试运行 supervisord 的 .ini 文件出错

我正在尝试使用http://supervisord.org/。但遇到错误。我supervisord.conf在运行它的同一目录中有该文件。

supervisord第一次尝试在我的 OSX Lion 计算机上运行,​​当我运行它时出现错误:

Error: .ini file does not include supervisord section

easy_install按照说明安装了它。在谷歌搜索中真的找不到任何有用的东西。帮助和指导将不胜感激。谢谢你。

mac-osx supervisord

6
推荐指数
1
解决办法
1万
查看次数

从非root bash脚本启动supervisord的推荐方法?

我已经设置了主管来监控一些进程。因为我是通过远程脚本部署的,所以我需要一种无需 sudo 即可发送主管启动/停止命令的方法。我不知道如何做到这一点。

主管有没有办法以非 root 用户身份运行指定的命令?

root supervisord

6
推荐指数
1
解决办法
9218
查看次数

如何在 FreeBSD 中启动时自动启动 supervisor?

supervisordFreeBSD 上是否有预先存在的启动脚本?如果没有,是否有为rc.dFreeBSD编写脚本的好指南?我对这个平台很陌生。

谢谢。

更新

我现在在 中有以下内容/usr/local/etc/rc.d/supervisord,但它似乎不起作用。我在与 supervisord 相关的启动滚动中没有看到任何内容。

#!/bin/sh

# PROVIDE: supervisord
# REQUIRE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="supervisord"
rcvar=`set_rcvar`
load_rc_config "$name"

command="/usr/local/bin/${name}"
command_args="-c /usr/local/etc/supervisord.conf"

supervisord_enable=${supervisord_enable-"NO"}
supervisord_pidfile=${supervisord_pidfile-"/var/run/supervisord.pid"}

pidfile="${supervisord_pidfile}"

run_rc_command "$1"
Run Code Online (Sandbox Code Playgroud)

freebsd rc.d supervisord

5
推荐指数
2
解决办法
6335
查看次数

被监控进程的动态数量

我正在使用supervisord 的 [program:x]来保持我的后台队列运行器正常运行。numprocs 的数量设置为静态数字,但现在我正在寻找一种解决方案,根据队列的工作负载动态调整进程计数。

是否可以(以编程方式)更改 supervisord 的 numprocs 设置的数量而不影响已经运行的工人?

background-process queue supervisord

5
推荐指数
1
解决办法
2398
查看次数

主管进程以“退出状态 1”退出;没想到'

我正在尝试在主管中运行 gunicorn_django 进程,但它总是立即退出,并出现此错误:

INFO exited: my_app (exit status 1; not expected)
INFO received SIGCLD indicating a child quit
INFO gave up: my_app entered FATAL state, too many start retries too quickly
Run Code Online (Sandbox Code Playgroud)

我的服务器脚本如下所示:

#!/bin/bash
set -e
LOGFILE=/var/log/gunicorn/my_app.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3
USER=my-www-user
GROUP=my-www-user
cd /home/my-www-user/my_app
source /home/my-www-user/.virtualenvs/my_app/bin/activate
test -d $LOGDIR || mkdir -p $LOGDIR
gunicorn_django -w $NUM_WORKERS --debug \
 --user=$USER --group=$GROUP \
 --log-level=debug --log-file=$LOGFILE 2>>$LOGFILE\
 --pythonpath=my_app --settings=settings.active \
 my_app.wsgi:application
Run Code Online (Sandbox Code Playgroud)

我的主管配置如下所示:

[program:my_app]
directory=/home/my-www-user/my_app/
user=my-www-user
command=/home/my-www-user/my_app/server.sh
stdout_logfile=/var/log/supervisor/my_app.log
stderr_logfile=/var/log/supervisor/my_app-error.log
autostart=true
autorestart=true
Run Code Online (Sandbox Code Playgroud)

当我su进入my-www-user …

django supervisord gunicorn

5
推荐指数
1
解决办法
2万
查看次数

supervisord 和 crashmail 配置

我想在 supervisord 进程更改状态时收到通知。我想我已经正确配置了它,但它不起作用:当我更改进程的状态(即启动/停止)时,我没有收到电子邮件,也没有看到故障信号。

这是主管配置:

[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m my_email@gmail.com
events=PROCESS_STATE
Run Code Online (Sandbox Code Playgroud)

主管状态告诉我 crashmail 正在运行:

crashmail                        RUNNING    pid 54227, uptime 0:11:50
other                            RUNNING    pid 54229, uptime 0:11:49
someother                        RUNNING    pid 54267, uptime 0:10:59
Run Code Online (Sandbox Code Playgroud)

在 crashmail 的 stdout 日志中,我发现了类似的内容:

READY
RESULT 2
OKREADY
RESULT 2
OKREADY
READY
RESULT 2
OKREADY
READY
READY
Run Code Online (Sandbox Code Playgroud)

并且标准错误是空的。我试图启动/停止其他进程但没有任何结果。

在我看来,supervisord 没有向崩溃邮件发送事件......我该如何检查?

supervisord

5
推荐指数
1
解决办法
1667
查看次数

避免多个程序的supervisord配置重复

我必须运行同一应用程序的多个实例,但设置略有不同。唯一改变的是一个命令行参数。

所以目前我的脚本看起来像这样:

[program:thing-one]
command=/usr/local/thing --instance one
user=a_user
stdout_logfile=/var/log/thing.log
autostart=true
autorestart=true
startsecs=10
redirect_stderr=true
directory=/
startretries=1000

[program:thing-two]
command=/usr/local/thing --instance two
user=a_user
stdout_logfile=/var/log/thing.log
autostart=true
autorestart=true
startsecs=10
redirect_stderr=true
directory=/
startretries=1000

[program:thing-three]
command=/usr/local/thing --instance three
user=a_user
stdout_logfile=/var/log/thing.log
autostart=true
autorestart=true
startsecs=10
redirect_stderr=true
directory=/
startretries=1000
Run Code Online (Sandbox Code Playgroud)

如何避免重复相同的设置?

linux supervisord

5
推荐指数
1
解决办法
4789
查看次数

Supervisord 发送 SIGKILL 而不是 SIGTERM

我正在运行 Supervisor 3.2.0-2ubuntu0.2 Ubuntu 16.04。我想更改我的一个进程使用的命令,但我需要确保主管向它发送正确的信号,以便进程可以结束;不幸的是,即使我已经请求了 TERM,主管仍然会发送 SIGKILL。

[program:my-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/worker/job --param=a,b,c
autostart=true
autorestart=true
stopwaitsecs=10
user=worker
stopsignal=TERM
numprocs=1
stdout_logfile=/var/log/supervisor/worker.log
stderr_logfile=/var/log/supervisor/worker-error.log
Run Code Online (Sandbox Code Playgroud)

如果我遵循Supervisor 在更改“命令”后未加载新的配置文件(例如:),php /home/worker/job --param=a,b,c,d我会在日志中看到以下内容:

2018-08-08 09:05:21,514 INFO waiting for worker_00 to stop
2018-08-08 09:05:21,533 INFO stopped: worker_00 (terminated by (9) SIGKILL)
Run Code Online (Sandbox Code Playgroud)

我特别需要确保发送 SIGTERM - 我已经深入研究了代码,但我没有看到任何明显的迹象表明我的配置不正确。我调用了错误的命令吗?service supervisord restart触发相同。

supervisord

5
推荐指数
1
解决办法
1万
查看次数