psutil - процесс приостановки - PullRequest
0 голосов
/ 10 февраля 2012

Я пишу скрипт на Python для Linux, который должен приостанавливать процесс при выполнении заданных условий, а затем возобновлять его. Для этого я использую psutil (http://code.google.com/p/psutil). Проблема, с которой я столкнулся, довольно странная. Когда я использую командную строку Python, все работает нормально - процесс приостанавливается, а затем возобновляется. Однако, когда я использую ту же функцию в файле сценария, а затем пытаюсь ее запустить, возникает исключение:

AttributeError: 'Process' object has no attribute 'suspend'

Фрагмент кода:

p = psutil.Process(19931)
p.suspend()
print 'suspended'
time.sleep(10)
p.resume()
print 'resumed'

Конечно, 19931 набирается PID процесса, который я запустил в фоновом режиме, и хочу, чтобы он был приостановлен.

У кого-нибудь есть идеи или намеки? Psutil - это новейшая версия, установленная из кода Google.

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

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

этот код прекрасно работает для меня (Python 3.7.3):

psutil.Process(pid=19931).suspend()

И аналогично

psutil.Process(pid=19931).resume()

Но вы должны быть уверены, что указанный процесс все еще жив.

0 голосов
/ 11 февраля 2012

Первое, что я подозреваю, когда Python ведет себя по-разному в интерактивной оболочке и при выполнении скрипта будут работать разные версии Python.Это может легко случиться, когда вы указываете на интерпретатора в вашем файле скрипта с чем-то вроде:

#!/usr/bin/python

Это длинный путь, поскольку, согласно веб-сайту psutil, он должен хорошо работать с версиями Python от 2.4до 3.3.Кроме того, ваш фрагмент отлично работает на моей машине (ядро 2.6.32, Python 2.6.6).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...