你好,我正在尝试在python中创建一个linux arm64服务。我的问题很简单。我称这项服务为“鲍勃”
我的服务代码是:
import time
for i in range(0,99999999):
print("hello", i)
time.sleep(5)

然后在候机楼:
systemctl restart bob
systemctl status bob我想看到的是有关活动服务的信息和每5秒打个招呼的服务,但是它只显示了有关活动服务的“正常工作”的信息。
当我尝试没有睡眠功能的时候:
import time
for i in range(0,99999999):
print("hello", i)

它工作得很好。状态和“你好41234”。但是有了它,它就没有了。没有错误出现在任何地方,cpu似乎被服务使用,但是没有输出。
编辑:确保不要用过多打印信息的命令来垃圾邮件给linux服务器。每条消息至少包含在系统日志中的两个位置,这些日志每隔一次被清理一次(从几天到几个星期取决于系统)。这样做会导致日志非常大。因为它们很少自动清洗,所以在下一次清理之前,您只剩下较少的磁盘空间。在我的例子中,只要几次打开程序几秒钟,就会有100%的磁盘空间被填满。
发布于 2022-08-12 11:50:01
您应该使用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秒,那时,它将打印所有的东西到终端。
更多细节这里
https://stackoverflow.com/questions/73318449
复制相似问题