在 Ubuntu 上创建的红隼服务因错误而停止 (code=exited, status=200/CHDIR)

Posted

技术标签:

【中文标题】在 Ubuntu 上创建的红隼服务因错误而停止 (code=exited, status=200/CHDIR)【英文标题】:Created kestrel service on Ubuntu stopped with error (code=exited, status=200/CHDIR) 【发布时间】:2020-05-30 22:45:59 【问题描述】:

我在 /etc/systemd/system 中创建如下服务:

$ cd /etc/systemd/system
$ sudo nano test.service

添加以下内容

[Unit]
Description=test app

[Service]
WorkingDirectory=/var/www/test-app
ExecStart=/usr/bin/dotnet /var/www/test-app/Test.App.dll
Restart=always
RestartSec=10
SyslogIdentifier=test
User=ubuntu
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

保存服务后 运行以下命令

$ sudo systemctl enable test.service
$ sudo systemctl start test.service
$ sudo systemctl status test.service

但显示此错误

test.service - test app
   Loaded: loaded (/etc/systemd/system/test.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sat 2020-02-15 10:41:19 UTC; 8s ago
  Process: 24631 ExecStart=/usr/bin/dotnet /var/www/test-app/Test.App.dll (code=exited, status=200/CHDIR)
 Main PID: 24631 (code=exited, status=200/CHDIR)

用户 (ubuntu) 存在并且拥有应用程序文件的适当所有权

【问题讨论】:

【参考方案1】:

我也有同样的问题。我尝试了使用不同目录的权限、路径长度。但问题是工作目录路径中的一个小错误。已修复,一切正常。

【讨论】:

工作目录路径中的错误是什么? 路径目录之一的拼写错误,即提供的 .NET 应用程序路径不正确。我不知道为什么我的回答被否决了。当我遇到这个问题时,我花时间调查它,虽然我确定我的配置没问题,但发现了这个小错误来修复它。【参考方案2】:

只是错误的目录路径或没有对该目录的权限。 我现在已经在 centos 上用 root 用户测试了 Kestrel。

【讨论】:

以上是关于在 Ubuntu 上创建的红隼服务因错误而停止 (code=exited, status=200/CHDIR)的主要内容,如果未能解决你的问题,请参考以下文章

用于 asp.net 核心应用程序生产的红隼准备好了吗?

不幸的是,Flutter App 因无法启动活动 ComponentInfo 错误而停止工作

使用亚马逊管道的红移副本因缺少主键而失败

SQL Server (MSSQLSERVER) 服务因 2148081668 服务性错误而停止。

在系统日志里提示SQL Server (MSSQLSERVER) 服务因 17051 (0x429B) 服务性错误而停止。

Server 服务因下列错误而停止: 拒绝访问。