• 在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重写个人博客站点小结

  • 相关阅读:
    jdk7_ConcurrentHashMap 图示
    Teradata 日期函数
    Teradata正则表达式
    Teradata sql去除字段中的字母/数字
    sql查询连续3天有交易记录的客户
    批量生成sql查询语句
    sql查询字段中是否含有字母/数字/符号
    sql查询每个人最新的2个电话号码
    python连接Teradata数据库
    dos命令获取文件行数
  • 原文地址:https://www.cnblogs.com/dudu/p/5656315.html
Copyright © 2020-2023  润新知