You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将nohup输出重定向到指定文件?多种尝试均失败

解决nohup运行dotnet程序时的权限拒绝问题

兄弟,我之前也踩过一模一样的坑!你试的那几个重定向命令其实都是正确的,问题根本不在命令写法上,核心是当前用户没有写入目标文件/目录的权限,给你一步步拆解解决:

先确认权限问题根源

报错 -bash: out.log: Permission denied 说明:

  • 如果是写当前目录的out.log:你当前所在的目录,当前用户没有写入权限
  • 如果是写/opt/out.log:/opt目录默认是root用户拥有权限,普通用户根本没法直接写进去

快速解决方案(推荐)

直接换一个你肯定有权限的目录,比如自己的家目录:

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

~ 代表当前用户的家目录(比如/home/你的用户名),这里你绝对有读写权限,先试试这个能不能正常运行,排除其他问题。

一定要写到指定目录的解决方案

如果你必须把日志写到/opt或者其他受限目录,有几种安全的方式:

1. 用临时管理员权限运行(简单但注意后续权限)

用sudo临时提升权限来运行命令,这样就能写入root权限的目录了:

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

⚠️ 注意:这样生成的out.log会是root用户所有,后续查看或修改这个日志文件可能需要加sudo,比如cat /opt/out.log要改成sudo cat /opt/out.log。

2. 创建专属日志目录(更安全)

给你的dotnet程序专门建一个日志目录,把权限设置给当前用户,这样既满足写入要求,又不会乱改系统目录的权限:

# 创建专属日志目录
sudo mkdir /opt/dotnet-app-logs
# 把目录权限转移给当前用户
sudo chown $USER:$USER /opt/dotnet-app-logs
# 现在就可以正常写入这个目录了
nohup dotnet application.dll > /opt/dotnet-app-logs/out.log 2>&1 &

3. 修复已有文件的权限(如果之前创建了日志文件)

如果之前已经生成了没有权限的out.log,先修改文件归属:

sudo chown $USER:$USER /opt/out.log

之后再运行你的nohup命令就没问题了。

额外验证小技巧

如果不确定是不是权限问题,可以先手动创建测试文件:

touch /opt/out.log

如果同样报Permission denied,那100%是目录权限问题,按照上面的方法解决就行。

内容的提问来源于stack exchange,提问作者jjmcc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:36:07