Python 是否未将标准输出写入文件?
我这里有点问题,我不知道发生了什么Python 是否未将标准输出写入文件?,python,bash,cron,Python,Bash,Cron,我这里有点问题,我不知道发生了什么 #!/bin/bash if [ ! `pgrep python` ]; then cd /home/user/test python test.py fi 我有一个python脚本test.py,它连接到我的服务器,获取一些信息,然后打印这些信息(本质上是在无限循环中) #!/bin/bash if [ ! `pgrep python` ]; then cd /home/user/test python test.py
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
我有一个python脚本test.py,它连接到我的服务器,获取一些信息,然后打印这些信息(本质上是在无限循环中)
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
我还有一个bash脚本starter.sh,如下所示:
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
当我从终端运行它时,一切正常,工作正常。它只是将一些文本写入控制台
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
当我涉及cron作业时,问题就出现了
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
我有以下cron工作:
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
*/1 * * * * /home/user/test/starter.sh >> /home/user/test/log.txt 2>&1
当cron作业运行时(我知道它在运行,因为我检查了我的服务器,它收到一个连接、一个数据请求,然后发送数据)
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
我想记录我的python脚本打印的任何东西。但是没有任何东西被写入日志??我该怎么办
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
编辑:简单地运行python test.py>>echo.txt或python test.py>echo.txt似乎也不起作用
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
我正在使用pythons打印函数打印数据好的,我似乎已经解决了这个问题(如果其他人碰巧有同样的问题)。问题是pythons 2.7中的打印不会刷新标准输出。通过运行
python-u test.py
这解决了问题,工作正常
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
从man来看,-u开关的作用如下:
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
-强制标准输入、标准输出和标准输出完全无缓冲。打开
重要的系统还包括stdin、stdout和stderr
二进制模式。请注意,xread中有内部缓冲-
lines()、readlines()和文件对象迭代器(“用于
sys.stdin”),不受此选项的影响。要正常工作
在这方面,您需要在内部使用“sys.stdin.readline()”
一个“while1:”循环我也是@bash脚本的初学者。我想应该可以
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py
fi
#!/bin/bash
if [ ! `pgrep python` ]; then
cd /home/user/test
python test.py >> /home/user/test/log.txt
fi
python test.py>>echo.txt不起作用,但python test.py>>/home/user/echo.txt起作用