我使用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 通知),而不会阻塞。