У меня есть простой скрипт на Python, который я хотел бы запустить в фоновом режиме, с выводом, перенаправленным в файл, например,
./test.py > output.log 2>&1 &
Это прекрасно работает, пока в моем выражении нет оператора sleep
Сценарий Python:
#! /usr/bin/env python
import sys
import time
from time import gmtime, strftime
urls=['http://a', 'http://b','http://c', 'http://d', 'http://e' ]
def main():
while True:
for url in urls:
try:
print url
except Exception, e:
print "Error checking url " + url
print e
#time.sleep(60)
if __name__ == '__main__':
main()
Если оператор сна не закомментирован, то при выполнении сценария в фоновом режиме выходные данные не генерируются.
Если он запускается на переднем плане, он работает нормально (со сном) и вывод отправляется на консоль или в файл, как я выбрал.
например, это всегда работает:
./test.py > output.log
У меня вопрос: почему использование оператора sleep предотвращает перенаправление вывода в файл, когда скрипт выполняется в фоновом режиме, и как я могу обойти это?