温馨提示×

Ubuntu nohup日志在哪找

小樊
45
2025-11-20 11:41:16
栏目: 智能运维

Ubuntu nohup 日志位置与定位方法

默认日志位置

  • 未显式重定向时,nohup 会在当前工作目录生成日志文件 nohup.out
  • 若当前目录不可写,会自动写入用户主目录 $HOME/nohup.out
  • 示例:
    • /home/user/app 目录执行:日志为 /home/user/app/nohup.out
    • 在只读目录执行:日志为 /home/user/nohup.out
  • 说明:这是 nohup 的默认行为,适用于 Ubuntu 等 Linux 发行版。

自定义日志路径

  • 推荐显式指定日志文件,便于管理:
    • 覆盖写入:nohup your_command > /path/to/app.log 2>&1 &
    • 追加写入:nohup your_command >> /path/to/app.log 2>&1 &
  • 含义:2>&1 将标准错误合并到标准输出,统一写入同一日志文件。

快速定位与查看日志

  • 已知日志文件名时,实时查看:tail -f nohup.out 或 tail -f /path/to/app.log
  • 不确定日志位置时,用进程查找:
    • 查找进程:ps -ef | grep your_command
    • 查看该进程打开的文件(含日志路径):lsof -p PID | grep -E ‘REG|LOG’
  • 若日志被重定向到 /dev/null(即丢弃输出),将看不到任何日志:nohup your_command > /dev/null 2>&1 &。

实用建议

  • 启动后不要直接关闭终端窗口,先按一次回车回到 shell,再输入 exit 退出,以避免会话关闭导致进程收到挂断信号而退出。
  • 长期运行建议使用 systemd 服务管理(可自动重启、集中日志),示例:
    • 创建服务:sudo nano /etc/systemd/system/my_script.service
    • 启用并启动:sudo systemctl enable my_script.service && sudo systemctl start my_script.service
    • 查看状态:sudo systemctl status my_script.service。

0