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()
スクリプトは、1つの大きな欠陥を除いて、期待どおりに機能します。シェルに入力しているときに入力が中断されます。
(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
これがばかげた質問である場合は、すみません。シェルが一般的にどのように機能するかについてはあまり詳しくありません。
編集:明確化
このスクリプトをデーモン化して実行したい理由は、天気の更新を邪魔にならない方法でコンソールに出力するなど、シェル内からシェルユーザーに更新を提供したいからです。これを達成するためのより良い方法があれば、私に知らせてください。ただし、目的は、ブロックせずに、端末内から(たとえば、Growl通知を介してではなく)情報を表示することです。