I am using the following command to run a python script in the background:
nohup ./cmd.py > cmd.log &
But it appears that nohup is not writing anything to the log file. cmd.log is created but is always empty. In the python script, I am using sys.stdout.write
instead of print
to print to standard output. Am I doing anything wrong?
Advertisement
Answer
It looks like you need to flush stdout periodically (e.g. sys.stdout.flush()
). In my testing Python doesn’t automatically do this even with print
until the program exits.