问题描述
我在ubuntu服务器16.04上安装了主管。
$ sudo apt-get install supervisor
$ sudo update-rc.d supervisor defaults
重新启动后,超级用户没有自动开始。检查状态:
qinking126@nas:~$ sudo service supervisor status
[sudo] password for qinking126:
● supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: http://supervisord.org
我不确定为什么它不活动(死机)。我需要检查些什么才能将其修复?
最佳方案
我确信这个问题是Ubuntu 16.04中Supervisor软件包中的打包错误,它似乎是由切换到systemd引起的:
-
该问题已经在issue 735的Supervisor项目的问题跟踪器(无法修复任何问题)的上游进行了报告。
-
几天前,我被这个问题咬了一下,很惊讶地发现,即使Ubuntu 16.04在很早以前发布,也从未向软件包维护者报告过这个问题,这破坏了向后兼容性和预期的行为。这就是为什么我决定向bug 1594740中的软件包维护者报告此问题的原因。
我在bug 1594740中记录了一个简单的解决方法,该方法不需要创建任何配置文件-安装软件包后,您只需要启用并启动Supervisor守护程序即可:
# Make sure Supervisor comes up after a reboot.
sudo systemctl enable supervisor
# Bring Supervisor up right now.
sudo systemctl start supervisor
我不确定在Ubuntu 16.04中是否可以解决此问题,但至少现在有一个中心位置可以收集投诉和文档解决方法(在bug 1594740中,不在issue 735中)。
如果有人被此问题困扰,请考虑在bug 1594740中表达您的担忧,以说服软件包维护者解决此问题。谢谢!
更新(2017-03-24):由于bug 1594740的结果,昨天针对此问题was released修复了xenial-updates的问题,因此新安装不应再遇到此问题。
次佳方案
看到这里Running supervisord automatically on startup
-
在
/usr/lib/systemd/system
中创建supervisord.service
文件,并将以下内容放入此文件中,具体取决于系统:initscripts -
sudo systemctl daemon-reload
-
sudo systemctl enable supervisord.service
-
sudo systemctl start supervisord.service