You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

uWSGI无法随系统启动启动的排查与修复求助

排查并解决uWSGI Upstart脚本未随系统启动的问题

你的判断非常精准:既然手动执行uWSGI命令完全正常,且/var/log/uwsgi/emperor.log没有任何启动痕迹,那核心问题确实是Upstart脚本没有在系统启动时被触发执行。下面一步步帮你定位和解决:

1. 先确认系统用的是哪种初始化系统

现在很多主流Linux发行版(比如Ubuntu 16.04及以后)默认用systemd而非Upstart,哪怕你手动安装了Upstart,系统可能还是用systemd初始化,这时候/etc/init/下的脚本根本不会被处理。

执行以下命令确认当前初始化系统:

ps -p 1 -o comm=
  • 如果输出是systemd:你的系统默认用systemd,Upstart脚本无效,需要转用systemd服务配置
  • 如果输出是init:系统确实用Upstart,继续排查Upstart本身的问题

2. 针对Upstart环境的排查步骤

如果确认系统用Upstart,按以下步骤检查:

  • 手动测试脚本能否启动:执行命令尝试手动触发服务,看是否有报错

    sudo start uwsgi
    

    启动失败会直接给出错误提示,比如语法错误、路径问题等,根据提示修复即可。如果启动成功,说明脚本本身没问题,问题出在启动级别匹配上。

  • 检查运行级别配置:你的脚本里写了start on runlevel [2345],确认系统默认运行级别是否在这个范围内:

    runlevel
    

    如果输出的运行级别不在2/3/4/5里,需要修改/etc/init/uwsgi.conf的start on参数,匹配当前系统的默认运行级别。

  • 查看Upstart自身的日志:Upstart的启动日志不会写到uWSGI的日志里,要查系统日志:

    # 用syslog的系统
    grep uwsgi /var/log/syslog
    

    这里会记录Upstart尝试启动uWSGI的全过程,比如是否找不到脚本、权限不足、触发条件不满足等细节。

  • 检查脚本语法和配置加载:

    # 检查Upstart脚本语法
    init-checkconf /etc/init/uwsgi.conf
    # 重新加载Upstart配置
    sudo initctl reload-configuration
    

    语法错误会直接提示,修复后重新加载配置再测试。

3. 针对systemd环境的解决方案(最常见)

如果系统用的是systemd,直接把Upstart脚本转换成systemd服务文件更可靠:

  1. 创建/etc/systemd/system/uwsgi.service文件,内容如下:
[Unit]
Description=uWSGI Emperor Service
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/my_project
Environment="PATH=/var/www/my_project/venv/bin"
ExecStart=/var/www/my_project/venv/bin/uwsgi --master --emperor /etc/uwsgi/vassals --die-on-term --uid www-data --gid www-data --logto /var/log/uwsgi/emperor.log
Restart=always

[Install]
WantedBy=multi-user.target
  1. 重新加载systemd配置并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl enable uwsgi
  1. 测试启动服务:
sudo systemctl start uwsgi

4. 最终验证

不管用哪种初始化系统,重启后都可以用以下命令确认uWSGI是否正常运行:

# 查看进程
ps aux | grep uwsgi
# 或者用服务状态命令
# systemd环境:sudo systemctl status uwsgi
# Upstart环境:sudo status uwsgi

内容的提问来源于stack exchange,提问作者user1950164

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:45:18