簡體   English   中英

如何將nohup輸出重定向到指定的文件?

[英]How can I redirect nohup output to a specified file?

從我在SO上找到的其他例子中我嘗試過的所有東西似乎都不起作用。 我試圖使用nohup運行我的應用程序,但將應用程序的輸出附加到文件。

我嘗試了以下一些方法。 這似乎都不起作用。

nohup dotnet application.dll &> out.log &
nohup dotnet application.dll > out.log 2>&1 &
nohup dotnet application.dll > /opt/out.log &

我總是收到類似的東西

-bash: out.log: Permission denied

我嘗試使用sudo運行應用程序,但它似乎仍然無法正常工作。


nohup dotnet application.dll &

工作正常,但它將輸出定向到其他目錄,如/home/ubuntu/nohup.out

我究竟做錯了什么?

nohup dotnet application.dll > out.log 2>&1 &是正確的表單。

> out.log將STDOUT重定向到文件out.log

2>&1將fd2(STDERR)重定向到fd1(STDOUT),它已經重定向到文件out.log

您的問題在於文件權限(或只讀文件系統)。 sudo到您的命令無法解決此問題,因為只有nohup dotnet application.dllsudo以root身份執行,輸出重定向由bash以您的普通用戶權限完成。 您可以通過調用具有root權限的單獨shell來解決此問題:

sudo sh -c 'nohup dotnet application.dll > out.log 2>&1 &'

暫無
暫無

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

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