Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Баг в модуле subprocess или баг в программе? 
V
    Опции темы
keph
  Дата 10.2.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Привет. Уже несколько недель не могу разобраться с поведением модуля subprocess. И под Windows, и под Linux проблема одна и та же: метод poll() возвращает то None, то числовой код. Как описано в документации None возвращается, если процесс не завершён, в противном случае 0 (успешное выполнение команды) или любой др. числовой код ошибки. При чём такая нестабильность наблюдается при выполнении одной и той же команды.
Вот код:
Код

import subprocess

def run_command(command):
    s = subprocess.Popen(command, shell=True, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout = s.stdout.read()
    stderr = s.stderr.read()
    # s.kill() - этот метод не работает под Windows, под Linux он проблему всё равно не решает!!!
    rc = s.poll()
    res = (rc == 0)
    return res, rc, stdout, stderr

rc по непонятным причинам то None, то числовое значение, при чём даже закономерность когда и что возвращается я определить не могу.
Кто-нибудь знает в чём проблема?
PM MAIL   Вверх
Daevaorn
Дата 10.2.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



Так, а какой вы результат ожидаете от вызова poll?
PM MAIL WWW   Вверх
keph
Дата 11.2.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Спасибо, я уже понял свою ошибку, вместо poll() нужно использовать wait()
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0401 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.