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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запуск процесса 
V
    Опции темы
optix
Дата 8.11.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ось - линукс

как запустить из скрипта другой процесс (например другой скрипт), чтобы он выполнялся параллельно

PM MAIL   Вверх
Daevaorn
Дата 8.11.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В документации всё описано. Пример:
Код

import subprocess
pid = subprocess.Popen( "my_script" ).pid

PM MAIL WWW   Вверх
optix
Дата 8.11.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Daevaorn @ 8.11.2007,  16:16)
В документации всё описано. Пример:
Код

import subprocess
pid = subprocess.Popen( "my_script" ).pid

спасибо

З.Ы. я понимаю что в документации ВСЕ описано, еще бы знать в каком разделе искать
PM MAIL   Вверх
optix
Дата 9.11.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



мне нужно узнать завершился ли запущенный процесс или нет

Код

import subprocess
help (subprocess,Popen)


Цитата

class Popen(__builtin__.object)
 |  .....
 |  .....
 |  poll(self, _deadstate=None)
 |      Check if child process has terminated.  Returns returncode
 |      attribute


а можно гдето узнать подробнее про метод poll, в часности что он возвращает когда процесс не завершен и что за параметр _deadstate ?

или может есть другие спосбы узнать завершился процесс или нет, может по pid 

PM MAIL   Вверх
_Viper_
Дата 9.11.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



poll всегда возвращает returncode.

Цитата

Instances of the Popen class have the following methods: 

poll( ) 
Check if child process has terminated. Returns returncode attribute. 

wait( ) 
Wait for child process to terminate. Returns returncode attribute. 

The following attributes are also available: 

pid 
The process ID of the child process. 

returncode 
The child return code. A None value indicates that the process hasn't terminated yet. A negative value -N indicates that the child was terminated by signal N (Unix only). 


Это сообщение отредактировал(а) _Viper_ - 9.11.2007, 18:53
PM MAIL   Вверх
optix
Дата 12.11.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

returncode 
The child return code. A None value indicates that the process hasn't terminated yet.


пасибо

PM MAIL   Вверх
aspolyakov
Дата 11.1.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.9.2008
Где: Russia, Urals, Ye katerinburg

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



Подскажите, а что мне надо юзать, если я хочу читать что выводит запущенное в cmd в режиме реального времени? Я пробовал subprocess.Popen и communicate. Оно сначала дождется конца процесса, потом выводит. Никак не могу добится желаемого результата((( Еще пробовал sys.popen и popen2.


Код

        p = subprocess.Popen(['c:\import.bat'],stdout=subprocess.PIPE,bufsize=-1 )
        print "Pipe opened"
        percent = 0
        s=''
        self.form.progress.setMaximum(200)
        for lines in p.stdout.xreadlines():
            self.form.setWindowTitle("Repgen "+str(self.form.progress.value()/2)+"%")
            print "line: ", line
            splitted = line.split("%")
            try:
                value = int ( splitted[0] )
                percent = percent+1
                print percent
                self.form.increase_progress_value( 1 )
            except:
                value = 0
        print "Closing pipe"

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


 




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


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

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