Как проверить, существует ли там процесс с данным pid в Python?

Не ясно, на каком основании вы выбираете записи из Orders. Один из вариантов - просто выбрать MIN() из region & amp; state с группой, а затем присоединиться к ней с Person

WITH b AS (
     SELECT ticket_number,
            MIN(region) AS region,
            MIN(state) AS state
     FROM orders
     GROUP BY ticket_number
) SELECT a.last_name,
         a.ticket_number,
         b.region,
         b.state
  FROM person a
  JOIN b ON a.ticket_number = b.ticket_number;

Демо

96
задан Omer Dagan 25 January 2017 в 12:34
поделиться

3 ответа

Отправка сигнала 0 к pid повысит исключение OSError, если pid не будет работать, и ничего не сделайте иначе.

import os

def check_pid(pid):        
    """ Check For the existence of a unix pid. """
    try:
        os.kill(pid, 0)
    except OSError:
        return False
    else:
        return True
153
ответ дан Brandon Rhodes 24 November 2019 в 05:31
поделиться

Посмотрите здесь для особенного метода окон получения полного списка выполнения процессов с их идентификаторами. Это было бы что-то как

from win32com.client import GetObject
def get_proclist():
    WMI = GetObject('winmgmts:')
    processes = WMI.InstancesOf('Win32_Process')
    return [process.Properties_('ProcessID').Value for process in processes]

, можно затем проверить pid, который Вы получаете против этого списка. Я понятия не имею о стоимости производительности, таким образом, необходимо проверить это, если Вы собираетесь сделать изодромную с предварением проверку часто.

Для *ОТКЛОНЯЮТ, просто используют решение mluebke.

6
ответ дан Alexander Lebedev 24 November 2019 в 05:31
поделиться

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

-2
ответ дан Damien_The_Unbeliever 24 November 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: