我从其他示例中尝试过的所有内容似乎都不起作用。我正在尝试使用 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
以 root 身份执行sudo
,输出重定向是由 bash 使用普通用户权限完成的。您可以通过调用具有 root 权限的单独 shell 来解决此问题:
sudo sh -c 'nohup dotnet application.dll > out.log 2>&1 &'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)