Подождите, пока не завершится определенный процесс (знающий «pid»).

У меня есть это:

def get_process():
    pids = []
    process = None
    for i in os.listdir('/proc'):
        if i.isdigit():
            pids.append(i)

    for pid in pids:
        proc = open(os.path.join('/proc', pid, 'cmdline'), 'r').readline()
        if proc == "Something":
            process = pid

    return process          

def is_running(pid):
    return os.path.exists("/proc/%s" % str(pid))

Тогда я делаю это:

process = get_process()
if process == None:
    #do something
else:
    #Wait until the process end
    while is_running(process):
        pass

Я думаю, что это не лучший способ дождаться завершения процесса, должна быть какая-то функция wait или что-то в этом роде, но я не могу ее найти.

Отказ от ответственности: процесс не является дочерним процессом

15
задан Niko 4 October 2011 в 19:41
поделиться