我不是Bash和Python的专家,所以这个问题可能看起来很愚蠢。
我有一个名为learn.py
的Python脚本,当重定向到日志文件时,我注意到标准输出的两种不同行为。
如果从终端调用此命令,则可以看到脚本运行时日志文件的大小正在增加。
$ ./learn.py > file.log
但是,如果出于相同目的创建bash文件:
#!/bin/bash
./learn.py > file.log
脚本已启动(我用pgrep
进行了检查),但似乎未运行,因为日志文件保持为空。我想念什么吗?
我通过插入插入Logging facility for Python来解决
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 &