首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ubuntu 20.04上的supervisord不能自动启动

在 Ubuntu 20.04 上,如果 supervisord 不能自动启动,可能是由于服务配置或系统服务管理器(systemd)的问题。以下是一些步骤来确保 supervisord 能够在系统启动时自动启动。

1. 安装 Supervisor

首先,确保你已经安装了 Supervisor:

代码语言:javascript
复制
sudo apt update
sudo apt install supervisor

2. 检查 Supervisor 配置

确保 Supervisor 的配置文件正确。默认情况下,Supervisor 的主配置文件位于 /etc/supervisor/supervisord.conf。你可以编辑这个文件来确保配置正确:

代码语言:javascript
复制
sudo nano /etc/supervisor/supervisord.conf

确保配置文件中没有语法错误,并且包含以下内容:

代码语言:javascript
复制
[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file; default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile; default supervisord.pid)
childlogdir=/var/log/supervisor   ; ('AUTO' child log dir, default $TEMP)

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

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = /etc/supervisor/conf.d/*.conf

3. 创建 systemd 服务文件

如果 supervisord 不能自动启动,可能是因为 systemd 服务文件没有正确配置。创建或编辑 supervisord 的 systemd 服务文件:

代码语言:javascript
复制
sudo nano /etc/systemd/system/supervisord.service

在文件中添加以下内容:

代码语言:javascript
复制
[Unit]
Description=Supervisor process control system for UNIX
Documentation=http://supervisord.org
After=network.target

[Service]
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

4. 重新加载 systemd 配置

保存并关闭文件后,重新加载 systemd 配置:

代码语言:javascript
复制
sudo systemctl daemon-reload

5. 启动并启用 Supervisor 服务

启动 Supervisor 服务并设置为开机自启动:

代码语言:javascript
复制
sudo systemctl start supervisord
sudo systemctl enable supervisord

6. 检查服务状态

检查 supervisord 服务的状态,确保它正在运行:

代码语言:javascript
复制
sudo systemctl status supervisord

你应该看到类似以下的输出,表示服务正在运行:

代码语言:javascript
复制
● supervisord.service - Supervisor process control system for UNIX
     Loaded: loaded (/etc/systemd/system/supervisord.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: http://supervisord.org
   Main PID: ...
      Tasks: ...
     Memory: ...
     CGroup: /system.slice/supervisord.service
             └─...

7. 检查日志

如果 supervisord 仍然不能自动启动,检查日志文件以获取更多信息:

代码语言:javascript
复制
sudo journalctl -u supervisord
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券