首页 > 解决方案 > s6覆盖s6-svc主管不听

问题描述

root@0cd6bfb7e363 app]# s6-svc /etc/services.d/uwsgi/
s6-svc: fatal: unable to control /etc/services.d/uwsgi/: supervisor not listening

[root@0cd6bfb7e363 app]# s6-svc -r /etc/services.d/uwsgi/
s6-svc: fatal: unable to control /etc/services.d/uwsgi/: supervisor not listening

然而

[root@0cd6bfb7e363 app]# ps aufx
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0    204     4 pts/0    Ss   01:42   0:00 s6-svscan -t0 /var/run/s6/services
root          30  0.0  0.0    188     8 pts/0    S    01:42   0:00 foreground  if   /etc/s6/init/init-stage2-redirfd   foreground    if     if      s6-echo      -n      --
root          40  0.0  0.0    184     4 pts/0    S    01:42   0:00  \_ foreground  s6-setsid  -gq  --  with-contenv  backtick  -D  0  -n  S6_LOGGING   printcontenv   S6_LO
root         261  0.0  0.0  15540  3864 pts/0    S    01:42   0:00      \_ /bin/bash
root         516  0.0  0.0  55204  3932 pts/0    R+   01:52   0:00          \_ ps aufx
root          31  0.0  0.0    204     4 pts/0    S    01:42   0:00 s6-supervise s6-fdholderd
root         241  0.0  0.0    204     4 pts/0    S    01:42   0:00 s6-supervise nginx
root         246  0.0  0.0  56840  7228 ?        Ss   01:42   0:00  \_ nginx: master process /usr/sbin/nginx
nginx        267  0.0  0.0  57484  5048 ?        S    01:42   0:00      \_ nginx: worker process
root         243  0.0  0.0    204     4 pts/0    S    01:42   0:00 s6-supervise uwsgi
root         245  0.0  0.0  15140  3012 ?        Ss   01:42   0:00  \_ bash ./run
root         255  0.2  0.0 259944 82060 ?        S    01:42   0:01      \_ uwsgi /etc/uwsgi.ini
root         339  0.0  0.0 259944 70452 ?        S    01:43   0:00          \_ uwsgi /etc/uwsgi.ini
root         340  0.0  0.0 259944 70452 ?        S    01:43   0:00          \_ uwsgi /etc/uwsgi.ini
root         341  0.1  0.0 297500 96408 ?        S    01:43   0:01          \_ uwsgi /etc/uwsgi.ini
root         342  0.0  0.0 259944 70452 ?        S    01:43   0:00          \_ uwsgi /etc/uwsgi.ini

有什么问题?

标签: s6

解决方案


因为 s6-overlay 将服务复制到不同的文件夹。查看ps转储中的第一行:

[root@0cd6bfb7e363 app]# ps aufx
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0    204     4 pts/0    Ss   01:42   0:00 s6-svscan -t0 /var/run/s6/services

s6-supervisor 正在监听 下的服务/var/run/s6/services,因此您应该做的是:

$ s6-svc -u /var/run/s6/services/uwsgi

README 文件中也有说明:

阶段 2.iii) 将用户服务 (/etc/services.d) 复制到 s6 正在运行其监督的文件夹并发出信号,以便它可以正确开始监督它们。

您可能想要使用只读根文件系统,因为这可以确保 s6-overlay 将文件复制到 /var/run/s6 目录中,而不是使用符号链接。


推荐阅读