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

10 python nohup amazon-web-services supervisord

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

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
Run Code Online (Sandbox Code Playgroud)

jet*_*com 8

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

sudo chown -R ubuntu:ubuntu /var/www/myapp/
Run Code Online (Sandbox Code Playgroud)

让它工作.


buz*_*all 5

问题是日志文件的权限 随着用户运行 supervisor,您可以在 supervisord.conf 文件的相同路径中创建一个“日志”文件夹并更改:

logfile=/tmp/supervisord.log
Run Code Online (Sandbox Code Playgroud)

logfile=logs/supervisord.log
Run Code Online (Sandbox Code Playgroud)


jav*_*ett 5

当我尝试使用该指令以非 root 用户身份运行时,在非特权Dockersupervisord容器中运行时会出现此错误。supervisord[supervisord] [user]

这是由docker #31243引起的,其中容器启动,root然后创建/切换到另一个用户(根据supervisord更改为非 root)以及stdin/stdout/stderr通过 TTY 对容器的限制性权限。

我的解决方法是将非root用户添加到tty组eg中useradd -G tty supervisord,确保您使用ttyegdocker run ... -t或Docker Compose运行tty: true