我在共享 Debian 服务器上安装了 Supervisor。当我跑步时:
supervisord -c supervisord.conf
我不断收到此错误,直到我杀死它:Unlinking stale socket /tmp/supervisor.sock
supervisorctl status
我得到:unix:///tmp/supervisor.sock no such file
[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
;chmod=0700 ; socket file mode (default 0700)
[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:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/app/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
;user=
numprocs=8
redirect_stderr=true
stdout_logfile= /path/to/app/worker.log
当我 cd 到 /tmp 查找套接字文件时,套接字如下所示:
supervisor.sock.824804。
运行
supervisord -c supervisord.conf
命令后,服务器会以某种方式随机生成六位数字。我是否必须在 supervisord.config 文件中考虑这个六位数?既然它是随机生成的,我该如何做到这一点?我已经在 macOS Mojave 上安装并运行了 Supervisor,没有任何问题,并且套接字文件只是像 Supervisor.sock 一样被锁定。提前感谢您的任何帮助和建议!
我将
nodaemon = true
设置为 supervisord.conf
,这解决了我的问题。
unlink /tmp/supervisor.sock
然后我修复了它“取消链接陈旧的套接字/tmp/supervisord.sock”。
这不是问题。只是通知您主管正在更新其套接字文件。
我收到了类似的错误,最终不得不更改目录中的文件路径
/lib/systemd/system/supervisor.service
在[服务]下方,您应该看到:
ExecStart=/usr/bin/supervisord ......
ExecStop=/usr/bin/supervisorctl ......
ExecReload=/usr/bin/supervisorctl .......
我将所有这些文件路径更改为 /usr/local/bin/supervisord 等。我猜原因是当您使用 pip install 时,它将配置文件放置在 /usr/local/bin 中,而不是默认的 /usr/local/bin 中是/usr/bin。
希望这有帮助!
如果有人使用 Digital Ocean,即 Digital Ocean Apps Platform,即使我的配置文件以以下内容开头,我也会收到此错误:
[supervisord]
nodaemon=true
为了解决这个问题,我更改了 Dockerfile
ENTRYPOINT
以明确针对我的特定配置文件。
# ...
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord"]
# ...
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/conf.d/supervisord.conf"]