Вы можете выполнить оболочку с помощью модуля подпроцесс и выполнить произвольные команды оболочки, но вы можете рассмотреть возможность использования чего-то вроде модулей PSI или psutil .
Они нестандартные, поэтому вам придется загрузить и установить их, но они будут гораздо более надежными и устойчивыми к ошибкам.(Помните, что ps
форматы вывода могут меняться на разных платформах).Вот пример реализации psutil, которая делает более или менее то, что вы пытаетесь сделать.Очевидно, поменяйте местами 'Python'
с 'theserver.jar'
или используйте p.exe
или p.cmdline
, если вам нужно проверить не только имя.
import psutil
def find_processes_by_name(name):
for p in psutil.process_iter():
try:
if p.name == name:
yield p.pid
except psutil.error.AccessDenied as e:
pass
raise StopIteration
print "Python processes:"
for pid in find_processes_by_name('Python'):
print '\t', pid