【问题标题】:Can't see any changes in nohup.out在 nohup.out 中看不到任何变化
【发布时间】:2016-06-24 19:28:23
【问题描述】:

我有一个使用此命令在服务器上运行的 python 脚本:

sudo nohup python fetch_script.py &

它在同一目录中创建一个nohup.out 文件。

几天后我回来尝试检查它,我做到了:

tail -f nohup.out

它给了我一个结果:

root@xx-xxx-xxx-xx:/home/ubuntu# tail -f nohup.out 
8809896
8809897
8809898
8809899
8809900
8809901
8809902
8809903
8809904
8809905

我等了一会儿,但什么也没发生。该脚本应该向 RabbitMQ 发送消息并更新计数并打印它。脚本一直在运行,我肯定知道,因为我可以看到不断出现的新消息。但是nohup.out 卡住了。我还用ls -l 命令检查了它的大小是否发生了变化,但仍然没有运气。 你知道这可能是什么原因吗?我认为它最终会更新,但不知道需要多长时间。那么有没有办法不断更新这个文件呢? nice -20 会在这种情况下提供帮助吗?

更新

只需旋转日志,/usr/sbin/logrotate 稍等片刻,就看到了新的变化 nohup.out

【问题讨论】:

  • 你确定进程还在运行吗?
  • 进程在运行,脚本也在运行

标签: python linux ubuntu centos nohup


【解决方案1】:

nohup.out 文件由在nohup 下运行的程序直接编写,就像普通的 shell 重定向一样。如果没有更新,问题出在 Python 程序上,而不是 nohup 本身。

【讨论】:

  • 你知道文件(nohup.out)会不会像1G一样大,会不会是我看到输出延迟的问题?
  • python 进程很可能只是决定将其输出缓冲区刷新到磁盘。程序经常发生的情况是,如果它们的输出连接到交互式终端,则它们的输出是行缓冲的,因此每次写入一行时,它都会刷新到输出,但是如果程序运行时将 stdout 重定向到文件是块缓冲的,输出文件的更新频率较低。
猜你喜欢
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 2021-08-13
  • 2019-04-26
  • 2019-01-16
  • 2012-12-18
相关资源
最近更新 更多