Используйте os.kill()
, как упомянуто Грегом, но поймите, что системный вызов kill проверяет не то, существует ли процесс, а то, можете ли вы отправить уничтожение этому процессу.Один из режимов отказа - если процесс не существует, а другой - у вас нет разрешения на его уничтожение.Чтобы различать, вы должны проверить исключение:
try:
os.kill(pid, 0)
print 'Process exists and we can kill it'
except OSError, e:
if e.errno == 1:
print 'Process exists, but we cannot kill it'
else:
raise
Это не требуется, если вы знаете, что у вас всегда будет разрешение на завершение процесса, который вы проверяете, скажем, потому что вы работаете от имени пользователя root илиизвестно, что процесс выполняется под тем же UID, что и процесс, проверяющий его.