你好,我正在尝试用 python 制作一个 linux ubuntu arm64 服务。我的问题很简单。我将该服务称为“bob”
我的服务代码是:
import time
for i in range(0,99999999):
print("hello", i)
time.sleep(5)
systemctl restart bob
systemctl status bob
我想看到的是有关事件服务的信息以及每 5 秒打招呼 [number] 的服务的信息,但它只显示有关事件服务“正常工作”的信息。
当我在没有 sleep 功能的情况下尝试时:
import time
for i in range(0,99999999):
print("hello", i)
它工作得很好。状态和“hello 41234”。但有了它,就不行了。任何地方都没有出现错误,CPU 似乎已被服务使用,但没有输出。
编辑: 确保不要使用打印过多信息的命令向您的 Linux 服务器发送垃圾邮件。每条消息都包含在系统日志中的至少两个位置,这些位置会经常清理(从几天到几周,具体取决于系统)。这样做会导致日志非常大。而且由于它们很少被自动清理,因此在下次清理之前您留下的磁盘空间会更少。就我而言,只需将程序打开几次并持续几秒钟,就会导致磁盘空间 100% 被填满。
最佳答案
您应该使用sys.stdout.flush()
来刷新缓冲区并将内容打印到终端。
例如,
import sys
import time
for i in range(10):
print(i, end =' ')
sys.stdout.flush()
time.sleep(1)
如果没有sys.stdout.flush()
,它将等到第10秒,届时,它将把所有内容打印到终端。
更多详情here
关于python time.sleep() 不起作用 linux 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73318449/