由于'INFO spawnerr:'app_name'的调度程序未知错误,因此无法启动nohup服务:EACCES'

时间:2016-02-08 15:25:59

标签: python amazon-web-services supervisord nohup

我正在尝试与主管一起开始服务,但我收到错误说

  

INFO spawnerr:为'app_name'制作调度程序的未知错误:EACCES

这是我的supervisord.conf文件:

[supervisord]
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB   ; change these depending on how many logs
logfile_backups=10      ; you want to keep
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=true
minfds=1024
minprocs=200

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

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock  socket

[program:myscript]
command= python -u /home/ubuntu/appfolder/app_name.py
autostart=true
autorestart=unexpected 
redirect_stderr=true
stdout_logfile=/var/log/app_name.log

5 个答案:

答案 0 :(得分:7)

我有同样的问题 - 芹菜子程序日志写在我的app文件夹下的logs子文件夹中,结果我在调试Nginx的问题时将所有者设置为www-user。我将app文件夹的所有者更改回ubuntu(>> whoami

sudo chown -R ubuntu:ubuntu /var/www/myapp/

让它发挥作用。

答案 1 :(得分:2)

问题是日志文件的权限 通过用户运行主管,您可以创建"日志"在supervisord.conf文件的相同路径中的文件夹并更改:

logfile=/tmp/supervisord.log

logfile=logs/supervisord.log

答案 2 :(得分:1)

当在无特权的Docker容器中运行supervisord时,当我尝试使用supervisord以非root用户身份运行[supervisord]时,会出现此错误{ {1}}指令。

这是由docker #31243引起的,其中容器以[user]开始,然后创建/切换了另一个用户(根据root更改为非root用户),并且对容器的supervisord通过TTY。

我的解决方法是将非root用户添加到stdin/stdout/stderr组中,例如tty,请确保您使用tty例如useradd -G tty supervisord或Docker Compose docker run ... -t

答案 3 :(得分:0)

我有同样的问题,我建议做以下

  1. 添加运行该服务的用户。 用户= youruser

  2. 将您的日志移至主管目录

  3. 来自:

    logfile=/tmp/supervisord.log
    

    为:

    logfile=/var/log/supervisor/supervisord.log
    

    同样适用于你的pid文件

    pidfile=/tmp/supervisord.pid >> pidfile=/var/run/supervisor/supervisord.pid 
    

    制作两个目录

    mkdir /var/run/supervisor/
    
    mkdir /var/log/supervisor/
    

    然后用

    更改目录
    chown youuser:youuser -R /var/log/supervisor/
    

    如果这样做了,请仔细检查谁可以写你的日志文件和pid文件。

    ls -l /var/log/supervisor/supervisord.log
    

    如果仍然没有工作,请尝试更新主管

答案 4 :(得分:0)

错误信息表明您的应用“ app_name”可能读取或写入没有特权的文件。

您是否已开始以root用户进行监管,然后又切换到特定用户?在这种情况下,您可以使用root所有者在“ app_name”中创建文件,但特定用户可能没有正确的权限。