Проверить, выполняется ли процесс с использованием Python в Linux [дубликат]

На этот вопрос уже есть ответ здесь:

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

def findProcess( processId ):
    ps= subprocess.Popen("ps -ef | grep "+processId, shell=True, stdout=subprocess.PIPE)
    output = ps.stdout.read()
    ps.stdout.close()
    ps.wait()
    return output
def isProcessRunning( processId):
    output = findProcess( processId )
    if re.search(processId, output) is None:
        return true
    else:
        return False

Вывод:

1111 72312 72311   0   0:00.00 ttys000    0:00.00 /bin/sh -c ps -ef | grep 71676
1111 72314 72312   0   0:00.00 ttys000    0:00.00 grep 71676

Он всегда возвращает истину, поскольку может найти идентификатор процесса в строке вывода.

Есть предложения? Спасибо за любую помощь.

37
задан jww 19 September 2019 в 07:13
поделиться