[英]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.dll
由sudo
以root身份執行,輸出重定向由bash以您的普通用戶權限完成。 您可以通過調用具有root權限的單獨shell來解決此問題:
sudo sh -c 'nohup dotnet application.dll > out.log 2>&1 &'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.