According to Python documentation here for execvp:
http://docs.python.org/2/library/os.html
"The current process is replaced immediately. Open file objects
and descriptors are not flushed, so if there may be data buffered
on these open files, you should flush them using sys.stdout.flush()
or os.fsync() before calling an exec* function.
Without the flush, we will miss the print statements before that
if we redirect the o/p to a file.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
print """
The following processes are listening for packets to arrive on network devices
that no longer exist. You may want to restart them."""
+ sys.stdout.flush()
os.execvp("ps", ["ps"] + ["%s" % pid for pid in bad_pids])