我使用 开发了一个简单的应用程序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 守护进程,我没有这方面的经验,所以我写了我在互联网上学到的东西,我创建了一个console.service包含以下结构的服务 cakked :
[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
将显示为:
问题是在文件夹内publish
(ExecStart 中指定的应用程序路径)我此时没有任何 log.txt。
为什么?
慕勒3428872
相关分类