Questions tagged «supervisord»

Supervisor是一个客户端/服务器系统,允许其用户控制类似UNIX的操作系统上的许多进程。

12
主管未加载新的配置文件
我在使用Gunicorn和Supervisor部署Django应用程序时遇到问题。虽然我可以让Gunicorn服务我的应用程序(通过设置适当的PYTHONPATH并运行适当的命令,但它来自超级用户配置),但我无法让超级用户运行它。只是看不到我的应用程序。我不知道如何确定配置文件是否正常。 这是supervisorctl所说的: # supervisorctl start myapp_live myapp_live: ERROR (no such process) 我在Ubuntu 10.04上使用以下配置运行它: 文件/home/myapp/live/deploy/supervisord_live.ini: [program:myapp_live] command=/usr/local/bin/gunicorn_django --log-file /home/myapp/logs/gunicorn_live.log --log-level info --workers 2 -t 120 -b 127.0.0.1:10000 -p deploy/gunicorn_live.pid webapp/settings_live.py directory=/home/myapp/live environment=PYTHONPATH='/home/myapp/live/eco/lib' user=myapp autostart=true autorestart=true 在/etc/supervisor/supervisord.conf文件的末尾,有: [include] files = /etc/supervisor/conf.d/*.conf 这是我的配置文件的符号链接: # ls -la /etc/supervisor/conf.d lrwxrwxrwx 1 root root 48 Dec …

2
主管HTTP服务器端口问题
我有主管设置来管理一些流程。当我启动服务器时,它工作得很好,但是当我停止它并尝试再次启动它时,它失败了,并给我这个错误消息: *正在启动Supervisor守护程序管理器... 错误:另一个程序已经在我们的一个HTTP服务器配置为使用的端口上进行监听。在启动主管之前,请先关闭此程序。 要获得帮助,请使用/ usr / bin / supervisord -h ...失败! 我在端口80上运行nginx并在端口8000、8001、8002、8003上运行4个Web服务器 有谁知道发生了什么吗? 重新启动后,一切正常。



1
如何一次控制整个主管组?
我定义了一个非同类的Supervisor组。但是,我无法使用组名控制该组。 如果尝试,会出现以下错误: $ supervisorctl start groupname groupname ERROR (no such process) 但是,我可以控制组中的单个元素 supervisorctl start groupname:programname 是否可以一次控制整个组(启动/停止/重新启动组中的所有程序)?如果是这样,怎么办?

2
Supervisord:如何追加到$ PATH
我似乎无法弄清楚如何在监督程序配置中附加到默认路径。 我可以重置路径: environment=PATH="/home/site/environments/master/bin" 但是当我尝试: environment=PATH="/home/site/environments/master/bin:$PATH" 我看到主管没有评估$PATH。 出于某种原因,Google对此并没有太大帮助,我不敢相信我是第一个需要此工具的人。 主管必须对此提供支持,知道这是什么吗?

1
Supervisord-CentOS上的ini文件错误
我在CentOS 6.5上安装了Supervisor,目前遇到一些似乎无法修复的奇怪错误。 我supervisord.conf在/etc目录中创建了一个文件,并按如下方式呼叫主管: $ supervisord -c /etc/supervisord.conf 看起来很基本。但是此错误不断出现: Error: .ini file does not include supervisord section 我的supervisord.conf文件如下所示: [program:supervisord] command=/usr/local/bin/run_queue.sh autostart=true autorestart=true stderr_logfile=/var/log/laraqueue.err.log stdout_logfile=/var/log/laraqueue.out.log 有人知道这是什么问题吗?

3
用主管控制tomcat
通过主管进行控制时,有没有办法“优雅地”关闭tomcat? 我的理解是Tomcat的shutdown.sh脚本在关闭端口上与tomcat对话以启动正常关闭。主管似乎没有办法指定关闭“命令”,仅使用信号即可。 有没有人成功地使用主管与tomcat? 另外,由于tomcat的startup.sh脚本启动了Java进程,因此我一直将生成的Java命令直接复制到超级用户中,但是由于所有环境设置,这并不像使用startup.sh脚本那样好。有没有办法让主管使用startup.sh脚本,但仍跟踪生成的子Java进程?

1
限制用户可以使用主管重启的进程?
我曾经使用主管来管理运行Django站点的Gunicorn进程,尽管这个问题可能与主管所管理的任何事情有关。以前,我是唯一管理和使用我们服务器的人,主管仅以root用户身份运行,我将supervisorctl restart myapp在需要时使用sudo运行。 现在,我们的服务器必须支持在不同站点上工作的多个用户,并且每个项目都需要能够重新启动自己的gunicorn进程,而又不能重新启动其他用户的进程。 我关注了这篇博客文章: http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/ 并允许非root用户使用超级用户,但现在任何人都可以重新启动其他任何人的进程。从外观上看,主管无法进行每个用户的访问控制。 任何人都对如何允许用户仅在没有root用户的情况下重新启动自己的进程有任何想法? 编辑:我们考虑过的一些事情包括编写一个由root拥有的脚本,其suid位集不包含任何内容supervisorctl restart myapp,并将其放置在拥有者的用户目录中myapp。互联网似乎在说,如果处理不当,这种脚本是不安全的。我们还考虑编写一个自定义守护程序,该守护程序侦听来自特定用户的命令,并在用户具有权限的情况下重新启动管理程序。如果可以使用更简单的解决方案,则此想法似乎过于复杂。

3
如果退出结果为0的情况下如何退出所有主管程序
我像这样用主管运行docker容器: Docker文件 CMD ["/run.sh"] 运行 #!/usr/bin/env bash exec supervisord -n Supervisor-serf.conf [group:job] programs=serf,producer [program:serf] command=/start-serf-agent.sh numprocs=1 autostart=true autorestart=unexpected stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start-self-agent.sh #!/bin/bash exec serf agent --join=serf:7946 -tag role=producer 主管服务 [program:producer] command=/start.sh numprocs=1 stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start.sh #!/bin/bash exec /producer --project=${NAME} 生产者停止后,我得到: producer_1 | …

2
如果进程终止,如何在upstart,runit,supervisor,daemontools等之间进行选择,以重新启动进程?
我有Nginx Web代理,gunicorn Web服务器和python / flask Web应用程序。Gunicorn进程显然已经死了,我想在将来通过研究一种实用程序来改善这种情况,该实用程序可以监视并重新启动Gunicorn进程,以防它再次崩溃。 我发现有几个可以做到这一点: 暴发户 运行 主管 守护程序 还有很多 是否有一篇综合文章比较和对比了用于监视和重新启动进程的各种实用程序?

3
主管始终以“退出状态0”退出流程;没想到
我目前正在重建我的vps,我想使用主管来管理我的gunicorn / wsgi django进程。事实是,主管不断退出流程: 2010-07-23 14:54:40,575 INFO supervisord started with pid 31391 2010-07-23 14:54:41,582 INFO spawned: 'projectx' with pid 31395 2010-07-23 14:54:41,691 INFO exited: projectx (exit status 0; not expected) 2010-07-23 14:54:42,695 INFO spawned: 'projectx' with pid 31401 2010-07-23 14:54:42,801 INFO exited: projectx (exit status 0; not expected) 2010-07-23 14:54:44,806 …

2
为什么在主管中使用`bash -c`而不是直接调用脚本?
我开始使用它supervisord来控制服务器中的服务。我不是Linux的专业用户,但是可以很好地使用它并使其运行。 出于好奇,我已经注意到,supervisor中的大多数命令看起来像这样: [program:install] command=bash -c "/src/etc/install.sh" 我已经读过bash的手册,并且知道-c应该使用该变量来插入在字符串之后传递的变量。 因此bash -c,考虑到没有传递/使用的变量,在超级用户(或其他任何地方)中使用而不是直接调用脚本(如下面的示例)有什么意义? [program:install] command=/src/etc/install.sh 谢谢!

3
用盐状态文件清除目录
如何使用状态文件清除Salt-minion上的目录?我想*.conf在/etc/supervisord/conf.d/设置其他主管服务之前删除其中的所有文件。 以下top.sls配置无效: /etc/supervisor/conf.d/*: file.absent file.remove 由于不可用而失败。

1
主管和标准输出/标准错误
对于Supervisord中的程序配置块,如果redirect_stderr为true,是否需要设置stderr_logfile? stderror_logfile=/path/to/logfile/stderr.log stdout_logfile=/path/to/logfile/stdout.log redirect_stderr=true 由于redirect_stderr为true,这应该意味着stderr.log将为空,并且stderr和stdout流的组合将显示在sdtout.log中。我的理解正确吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.