我使用 開發(fā)了一個簡單的應(yīng)用程序NetCore,該應(yīng)用程序每次執(zhí)行時都將內(nèi)容寫入文件,這是代碼: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"); } } }}所以如果我以這種方式啟動應(yīng)用程序:dotnet SimpleApp.dll我會得到一個log.txt文件Hello World?,F(xiàn)在,我正在嘗試創(chuàng)建一個 linux 守護(hù)進(jìn)程,我沒有這方面的經(jīng)驗(yàn),所以我寫了我在互聯(lián)網(wǎng)上學(xué)到的東西,我創(chuàng)建了一個console.service包含以下結(jié)構(gòu)的服務(wù) cakked :[Unit]Description = Hello World Daemon[Service]ExecStart = /usr/bin/dotnet /home/my username/Desktop/publish/SimpleApp.dllRestart = on-failure[Install]WantedBy = multi-user.target所以基本上我有一個描述,我設(shè)置ExecStart了我的dotnet安裝路徑和應(yīng)用程序的路徑。后來我有一個Install如果理解得好告訴systemctl服務(wù)可以為每個用戶運(yùn)行,對嗎?后來,我復(fù)制了system文件夾中的服務(wù):sudo cp console.service /lib/systemd/system我啟用了它:sudo systemctl daemon-reload sudo systemctl enable console.service所以,我執(zhí)行了服務(wù):sudo systemctl start console.service當(dāng)我打印狀態(tài)時:systemctl status console.service將顯示為:問題是在文件夾內(nèi)publish(ExecStart 中指定的應(yīng)用程序路徑)我此時沒有任何 log.txt。為什么?
1 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊
由于您只為文件指定了相對路徑,因此它將在服務(wù)的工作目錄中創(chuàng)建。
您可以更改"log.txt"為完整路徑或在 .service 文件中設(shè)置工作目錄:
[Service]
WorkingDirectory=/path/you/want/the/file/to/be/in
…
- 1 回答
- 0 關(guān)注
- 204 瀏覽
添加回答
舉報(bào)
0/150
提交
取消