2016-06-07 5 views
2

Мне было интересно, как вы можете проверить, работает ли программа с использованием python, и если она не запускается. У меня есть 2 скрипта python, один из них - графический интерфейс, который контролирует другой скрипт. Так что в основном, если второй скрипт по какой-то причине сбой, я бы хотел, чтобы это началось. P.S. Я использую python 3.4.2 в Windows.Проверка выполнения программы

+0

Google вокруг и увидеть, что PidFile есть, возможно, решит вашу проблему. – Maciek

+0

Это может помочь вам: http://stackoverflow.com/questions/1632234/list-running-processes-on-64-bit-windows –

+0

'sudo apt-get install supervisor' – C14L

ответ

5

Модуль psutil может вам помочь. Для того, чтобы перечислить все процесс подножки использования:

import psutil 

print(psutil.pids()) # Print all pids 

Чтобы получить доступ к информации о процессе использования:

p = psutil.Process(1245) # The pid of desired process 
print(p.name()) # If the name is "python.exe" is called by python 
print(p.cmdline()) # Is the command line this process has been called with 

Если вы используете psutil.pids() на для, вы можете проверить все, если этот процесс использует питон, как:

for pid in psutil.pids(): 
    p = psutil.Process(pid) 
    if p.name() == "python.exe": 
     print("Called By Python:"+ str(p.cmdline()) 

документация psutil доступна на: https://pypi.python.org/pypi/psutil

EDIT 1

Предположив, если имя сценария Pinger.py, вы можете использовать эту функцию

def verification(): 
    for pid in psutil.pids(): 
     p = psutil.Process(pid) 
     if p.name() == "python.exe" and len(p.cmdline()) > 1 and "Pinger.py" in p.cmdline()[1]: 
      print ("running") 
+0

Я думаю, что это не одна из стандартных библиотек python по умолчанию, или я ошибаюсь? если так, то я нашел это lib https://pypi.python.org/pypi/psutil, это вы правы? – Sande

+0

Да, вы правы, эта библиотека lib не является листом по умолчанию, но вы правильно указали, это тот же модуль –

+0

Другой вопрос, я вижу, что это реагирует во всех скриптах python. Как python.exe, но я хотел бы проверить отдельный скрипт, а не основной, который имеет psutil – Sande

Смежные вопросы