簡體   English   中英

如何在啟動時作為 raspberry pi 的(守護進程)服務執行 .NET Core 控制台應用程序

[英]How to execute a .NET Core console application on startup as a (daemon) service for the raspberry pi

我想知道如何在樹莓派上將 dotnet 控制台應用程序作為服務運行。

我可以通過鍵入 '''./dotnet/garagedeur_pi/publish/Garageeur''' 手動啟動應用程序

我創建了一個 Garageeur.Service 文件:

Description=Garagedeur

[Service]
ExecStart=/home/pi/dotnet/garagedeur_pi/publish/Garagedeur.dll
WorkingDirectory=/home/pi/dotnet/garagedeur/pi/publish
#Restart=always
#RestartSec=10
User=pi

[Install]
WantedBy=multi-user.target

當我檢查狀態時,我得到了這個:

● Garagedeur.service - Garagedeur
   Loaded: loaded (/lib/systemd/system/Garagedeur.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-02-17 12:09:49 CET; 11min ago
  Process: 1142 ExecStart=/home/pi/dotnet/garagedeur_pi/publish/Garagedeur.dll (code=exited, status=200/CHDIR)
 Main PID: 1142 (code=exited, status=200/CHDIR)

Feb 17 12:09:49 raspberrypi systemd[1]: Started Garagedeur.
Feb 17 12:09:49 raspberrypi systemd[1142]: Garagedeur.service: Changing to the requested working directory failed: No such file or directory
Feb 17 12:09:49 raspberrypi systemd[1142]: Garagedeur.service: Failed at step CHDIR spawning /home/pi/dotnet/garagedeur_pi/publish/Garagedeur.dll: No such file or directory
Feb 17 12:09:49 raspberrypi systemd[1]: Garagedeur.service: Main process exited, code=exited, status=200/CHDIR
Feb 17 12:09:49 raspberrypi systemd[1]: Garagedeur.service: Failed with result 'exit-code'.

任何幫助是極大的贊賞。

解決方案:

只需閱讀錯誤消息,就會看到garagedeur/pi/ 與garagedeur_pi/ 不同。 Garageeur.dll 和 Garageeur 之間也存在差異 – M. Spiller 2 月 17 日 11:33

您可以在此處查看如何使用 Nginx 在 Linux 上創建服務文件Host ASP.NET 在您的服務文件中,您必須添加 .NET 安裝的位置,如下所示:

ExecStart=/usr/bin/dotnet /home/pi/dotnet/garagedeur_pi/publish/Garagedeur.dll

這里有一個例子:

[Unit]
Description=Garagedeur

[Service]
ExecStart=/usr/bin/dotnet /home/pi/dotnet/garagedeur_pi/publish/Garagedeur.dll
WorkingDirectory=/home/pi/dotnet/garagedeur/pi/publish
Restart=always
RestartSec=10
User=pi

[Install]
WantedBy=multi-user.target

路徑/usr/bin/dotnet取決於您是否安裝了 .NET。 在我的樹莓/home/pi/dotnet-arm32/dotnet這條路徑是/home/pi/dotnet-arm32/dotnet 您可以使用命令找到正確的路徑

dotnet --info

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM