在CentOS系统中,使用nohup命令运行程序时,默认日志文件为nohup.out,其存储位置取决于命令执行时的当前工作目录(即运行nohup命令时所在的目录)。
例如:若在/home/user/myapp目录下执行nohup ./myapp &,则nohup.out会生成在该目录下;若在/tmp目录下执行,则nohup.out会保存在/tmp中。
若当前工作目录不可写(如权限不足),nohup会自动将日志文件回退到用户主目录(~,如/home/username)下,仍命名为nohup.out。
若需将日志保存到指定位置,可通过重定向操作实现,常见方式如下:
合并标准输出与标准错误到同一文件:
使用>重定向标准输出(stdout),2>&1将标准错误(stderr)合并到标准输出,最终保存到指定文件。
示例:nohup ./myapp > /var/log/myapp.log 2>&1 &
此命令会将myapp程序的所有输出(包括正常信息和错误信息)写入/var/log/myapp.log。
分别记录标准输出与标准错误到不同文件:
使用>重定向标准输出,2>重定向标准错误到不同文件。
示例:nohup ./myapp > /var/log/myapp_output.log 2> /var/log/myapp_error.log &
此命令会将正常信息写入/var/log/myapp_output.log,错误信息写入/var/log/myapp_error.log。
追加模式(不覆盖原有日志):
使用>>代替>,可将新日志追加到指定文件的末尾,而非覆盖原有内容。
示例:nohup ./myapp >> /var/log/myapp.log 2>&1 &
/var/log/通常需root权限),否则会导致日志写入失败。/var/log/myapp.log)而非相对路径(如./myapp.log),避免因工作目录变化导致日志位置不确定。通过以上说明,可根据实际需求快速定位或自定义nohup日志文件的存储路径。