python time.sleep() 不起作用 linux 服务

标签 python linux service

你好,我正在尝试用 python 制作一个 linux ubuntu arm64 服务。我的问题很简单。我将该服务称为“bob”

我的服务代码是:

import time
for i in range(0,99999999):
    print("hello", i)
    time.sleep(5)

enter image description here 然后在终端中:

systemctl restart bob
systemctl status bob

我想看到的是有关事件服务的信息以及每 5 秒打招呼 [number] 的服务的信息,但它只显示有关事件服务“正常工作”的信息。

当我在没有 sleep 功能的情况下尝试时:

import time
for i in range(0,99999999):
    print("hello", i)

enter image description here 它工作得很好。状态和“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/

相关文章:

python - 使用项目字段中的内容重命名 Scrapy 0.24 中下载的图像,同时避免文件名冲突?

javascript - 减慢 Django Web 应用程序中 Vue.js 更新方法中的请求速率

python - 计算大于当前行值但小于其他列值的连续行数

python - 在 heroku 中启动应用程序?什么是程序文件? 'web:' 命令?

java - 调度一个java程序

linux - 如何在 debian 中启动服务?

Python - scapy 超时选项根本不起作用

c - 无需管道即可将数据从子进程传递到父进程

linux - 如何在写入之前向 ext4 指示文件的大小?

android - 如何自行停止使用 BIND_AUTO_CREATE 启动的服务?