Desenvolvi e publiquei uma aplicação web dotnet core
para linux arm machine. Para fazer isso, o comando foi lançado:
dotnet publish --runtime linux-arm -p:PublishSingleFile=true
E como resultado dá o diretório:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 10/03/2020 8:56 wwwroot
-a---- 09/03/2020 10:54 162 appsettings.Development.json
-a---- 09/03/2020 10:54 192 appsettings.json
-a---- 10/03/2020 8:56 108097487 coremonitor
-a---- 09/03/2020 12:59 7248 coremonitor.pdb
-a---- 10/03/2020 8:56 474 web.config
Onde coremonitor
está o executável. Esses dados são enviados ao servidor e armazenados no caminho /root/datalogger/linux-arm/
. Em seguida, criamos o daemon systemd para iniciá-lo:
[Unit]
Description=Data Logger Monitor Daemon
[Service]
ExecStart=./coremonitor
WorkingDirectory=/root/dataloggermonitor/linux-arm
User=dotnetuser
Group=dotnetuser
Restart=on-failure
SyslogIdentifier=DataLoggerMonitor-Service
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Depois de reiniciar, recebo o seguinte log do systemd ( systemctl status dataloggermonitor
):
● dataloggermonitor.service - Data Logger Monitor Daemon
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
Isso é corrigido inserindo diretamente o caminho de execução no
ExecStart
parâmetro. O sistema iniciará o executável a partir de seu próprio caminho relativo:Recebendo: