gpt4 book ai didi

python - 从 Python 守护进程认真打印到标准输出

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:43 24 4
gpt4 key购买 nike

我使用 python-daemon 编写了一个简单的脚本打印到 sys.stdout:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import daemon
import sys
import time


def main():
with daemon.DaemonContext(stdout=sys.stdout):
while True:
print "matt daemon!!"
time.sleep(3)


if __name__ == '__main__':
main()

脚本如我所愿地工作,除了一个主要缺陷——当我在我的 shell 中输入时它会中断我的输入:

(daemon)modocache $ git clomatt daemon!!
matt daemon!!ne
matt daemon!! https://github.com/schacon/cowsay.git
(daemon)modocache $

有没有办法以非侵入式的方式显示输出?我希望是这样的:

(daemon)modocache $ git clo
matt daemon!! # <- displayed on new line
(daemon)modocache $ git clo # <- what I had typed so far is displayed on a new line

如果这是一个愚蠢的问题,请原谅,我不太熟悉 shell 的一般工作方式。

编辑:澄清

我希望此脚本运行守护进程的原因是我想从 shell 中向 shell 用户提供更新,例如以非侵入方式将天气更新打印到控制台。如果有更好的方法来实现这一点,请告诉我。但目的是在不阻塞的情况下显示终端内的信息(而不是通过 Growl 通知)。

最佳答案

如果它不需要是“即时”通知,并且您可以等到用户下次运行命令时,您可以将各种东西烘焙到您的 bash shell 提示符中.例如,我的告诉我时间和我所在目录的 git 存储库状态。

“普通用户”shell 提示的 shell 变量是 PS1,因此谷歌搜索 bash PS1bash 提示自定义 会给你一些有趣的例子。

这是一些链接:

通常,您可以在提示字符串中包含任意脚本的输出。但是请注意,高延迟命令会延迟提示字符串的打印,直到它们可以被评估为止,因此缓存信息可能是个好主意。 (例如,如果你想显示天气网站的天气,不要让你的 bash 提示消失,每次显示提示时都检索网页!)

关于python - 从 Python 守护进程认真打印到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10483846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com