• 在Linux上用supervisor运行ASP.NET Core站点的一个坑


    将一个ASP.NET Core站点在Linux服务器上以self-contained部署方式发布出来后,直接在终端上运行下面的命令,站点可以正常运行。

    /data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish/AboutUs

    但是通过supervisor以服务方式运行却失败:

    # supervisorctl status
    aboutus                          FATAL      Exited too quickly (process log may have details)

    查看错误日志发现是因为找不到appsettings.json文件:

    # supervisorctl tail aboutus
    'appsettings.json' was not found and is not optional.
       at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)

    可appsettings.json文件明明就在那里。

    在supervisor中是这样配置这个服务的( /etc/supervisor/conf.d/aboutus.conf ):

    [program:aboutus]
    command=/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish/AboutUs
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/aboutus.err.log
    stdout_logfile=/var/log/aboutus.out.log
    environment=Hosting__Environment=Production
    user=root
    stopsignal=INT
    redirect_stderr=true

    和在终端中运行的命令没区别,为什么在supervisor中以服务运行就不行呢?

    。。。

    后来想到,既然找不到appsettings.json文件,肯定是没在"/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish"这个路径中找,那我把当前路径设为这个路径也许能解决问题,于是在"/etc/supervisor/conf.d/aboutus.conf"添加了如下的1行配置:

    directory=/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish

    重启supervisor服务之后,问题解决。

    # service supervisor restart
    Restarting supervisor: supervisord.
    # supervisorctl status
    aboutus                          RUNNING    pid 1941, uptime 0:00:02

    [相关博文]

    ASP.NET Core重写个人博客站点小结

  • 相关阅读:
    2019-1-25-win10-uwp-禁用-ScrollViewer-交互
    2019-1-25-win10-uwp-禁用-ScrollViewer-交互
    2018-8-13-WPF-使用-Edge-浏览器
    2018-8-13-WPF-使用-Edge-浏览器
    2018-10-23-使用-Pandoc-把-Markdown-转-Docx
    2018-10-23-使用-Pandoc-把-Markdown-转-Docx
    Java实现 LeetCode 486 预测赢家
    PDO::getAttribute
    PDO::beginTransaction
    PDO::exec
  • 原文地址:https://www.cnblogs.com/dudu/p/5656315.html
Copyright © 2020-2023  润新知