2015-08-25 6 views
1

Кипячение до наименьшей проблемы здесь - простой скрипт python, который я хочу запустить, используя nohup on linux. Я запустить его, используя следующие (на Linux):Nohup не работает с &

nohup python test.py & 

Команда, кажется, просто ничего не делать, ничего не добавляется к nohup.out. Если я запустил его без &, вывод будет корректно отображаться в окне терминала. Что мне не хватает?

import time 

def test(): 
    while(True): 
     print "Woke up!" 
     time.sleep(5) 

if __name__ == "__main__": 
    test() 

ответ

8

Pass питон флаг -u для unbuffering стандартного вывода

nohup python -u test.py & 

Питона буфер STDOUT иначе. Это не требует изменения кода.

От человека странице:

 -u  Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout 
      and stderr in binary mode. Note that there is internal buffering in xreadlines(), readlines() and file-object 
      iterators ("for line in sys.stdin") which is not influenced by this option. To work around this, you will want 
      to use "sys.stdin.readline()" inside a "while 1:" loop. 
+0

У меня были проблемы с питон скрипт не работает с поЬир и это зафиксировал его. Много граций. –

4

Вам нужно промывать stdout после печати: sys.stdout.flush(); в противном случае потребуется некоторое время, чтобы заполнить буфер stdout.

 Смежные вопросы

  • Нет связанных вопросов^_^