[英]Python stdout logging: terminal vs bash file
我不是 Bash 和 Python 的專家,所以這個問題可能看起來很愚蠢。
我有一個名為learn.py
的 Python 腳本,當重定向到日志文件時,我注意到標准輸出的兩種不同行為。
如果我從終端調用它,我可以看到在腳本運行時日志文件的大小在增長。
$ ./learn.py > file.log
但是,如果我出於相同目的創建一個 bash 文件:
#!/bin/bash
./learn.py > file.log
腳本啟動(我用pgrep
進行了檢查)但它似乎沒有運行,因為日志文件保持為空。 我錯過了什么嗎?
我解決了使用Python的Logging 工具,通過插入
import logging
logging.basicConfig(filename='file.log',level=logging.INFO)
並將每次出現的print "..."
替換為
logging.info("...")
最終的 Bash 腳本:
#!/bin/bash
./learn.py
你可以使用nohup
:
您也可以使用 & 使其在后台運行
#!/bin/bash
nohup python learn.py >> file.log &
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.