Я разработал простое приложение, используя NetCore
, приложение записывает содержимое в файл каждый раз, когда выполняется, это код:
using System;
using System.IO;
namespace SimpleApp
{
class Program
{
static void Main(string[] args)
{
using (StreamWriter writer = new StreamWriter("log.txt", true))
{
writer.WriteLine("Hello World");
}
}
}
}
, поэтому, если я запускаю приложение следующим образом:dotnet SimpleApp.dll
Я получаю log.txt
файл с Hello World
в нем.
Теперь я пытаюсь создать демон linux, у меня нет такого опыта, поэтому я написал то, что узнал в ИнтернетеЯ создал сервис cakked console.service
, который содержит эту структуру:
[Unit]
Description = Hello World Daemon
[Service]
ExecStart = /usr/bin/dotnet /home/my username/Desktop/publish/SimpleApp.dll
Restart = on-failure
[Install]
WantedBy = multi-user.target
Итак, по сути, у меня есть описание, и я установил в ExecStart
путь моей установки dotnet
и путьприложение.
Позже у меня есть Install
, который при правильном понимании сообщает systemctl
, что служба может работать для каждого пользователя, верно?
Позже я скопировал службу в system
папка:
sudo cp console.service /lib/systemd/system
и я включил ее:
sudo systemctl daemon-reload
sudo systemctl enable console.service
так, я выполнил службу:
sudo systemctl start console.service
и когда я распечатал статус:
systemctl status console.service
будет отображаться это:
![enter image description here](https://i.stack.imgur.com/nucWD.jpg)
проблема в том, что внутри папки publish
(путь к приложению указанв ExecStart) У меня нет log.txt в настоящее время.
Почему?