Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 30, 2007 16:30:58

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

Проблема такова
я запускаю процесс (под win), но мне нужно установить приоритет для него. Как это сделать? Поиски ничего толком не дали.

line = 'FileConverter.exe '+ option + ' -version '
process = subprocess.Popen(line, shell=True, stdout=subprocess.PIPE)
process.wait()
Заранее спасибо.

Офлайн

#2 Ноя. 30, 2007 17:40:29

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
……
The startupinfo and creationflags, if given, will be passed to the underlying CreateProcess() function. They can specify things such as appearance of the main window and priority for the new process. (Windows only)
……


Функция CreateProcess() - это функция из модуля - pywin32: win32process.CreateProcess()



Отредактировано (Ноя. 30, 2007 18:02:24)

Офлайн

#3 Ноя. 30, 2007 17:52:34

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

shiza
The startupinfo and creationflags, if given, will be passed to the underlying CreateProcess() function. They can specify things such as appearance of the main window and priority for the new process. (Windows only)
Да это я видел. Только что конкретно нужно установить, какие флаги или опции использовать я не нашел. Только это одно упоминание.

Офлайн

#4 Ноя. 30, 2007 18:04:23

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

import win32process
CreationFlags = win32process.HIGH_PRIORITY_CLASS

Это в качестве наводки….
Ибо тут разобратся надо, чтоб приоритет повышался у приложения, а не у shell.
Наверное надо покопать доку на win32process.CreateProcess()



Отредактировано (Ноя. 30, 2007 18:06:03)

Офлайн

#5 Ноя. 30, 2007 18:20:16

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

Ага, спасибо, это я неправильно перевёл “Indicates a process…”
UPD: Действительно изменяет приоритет шелла а не приложения.

Отредактировано (Ноя. 30, 2007 18:28:41)

Офлайн

#6 Ноя. 30, 2007 19:04:35

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

Проблема приоритета решилась:

 line = 'start /wait /low /b FileConverter.exe '+ option + ' -version '
process = subprocess.Popen(line, shell=True, stdout=subprocess.PIPE)
process.wait()
Основная проблема - как сделать так, что б в цикле не запускалось много таких процессов, а они шли по-очереди? Сейчас у меня запускаеться куча процессов с низким приоритетом….

Офлайн

#7 Ноя. 30, 2007 19:06:19

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

По моему в этом случае c output будут проблемы.



Офлайн

#8 Июль 21, 2008 12:33:11

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

Ferroman
line = ‘FileConverter.exe ’+ option + ‘ -version ’
process = subprocess.Popen(line, shell=True, stdout=subprocess.PIPE)
process.wait()
подскажите у вас код
process.wait()
приостанавливает выполенние скрипта до завершения process ?
я аналогично запускаю start /belownormal 7z a archivename filetopack

но process.wait() сразу же отрабатывает и продолжается выполнение скрипта.
А без start все работает как надо.
только не знаю как приоритет понизить для процесса.
может подскажете как добиться остановки скрипта до завершения subprocess?



Отредактировано (Июль 21, 2008 13:00:39)

Офлайн

#9 Июль 21, 2008 22:11:38

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

У меня тоже не сработало. Я переделал - убрал “start” и понизил процесс в самой программе, которую вызываю - тогда wait работает.
В вашем случае, я бы использовал LZMA SDK (http://www.7-zip.org/sdk.html) точнее PyLZMA (http://www.joachim-bauch.de/projects/python/pylzma), и просто делал сжатие в отдельном питоновском потоке.

Что-то тег url не сработал :/

Отредактировано (Июль 21, 2008 22:18:03)

Офлайн

#10 Июль 22, 2008 08:12:39

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Приоритет запускаемого процесса в Win

Ferroman
понизил процесс в самой программе
подскажите как вы понизили процесс в самой программе?
P.S. Поправьте меня если я ошибаюсь, при использовании start создаются 2 процесса : start и 7z. Мы имеем возможность отследить завершение процесса start, а завершение второго 7z второго никак..
P.S. я из ms sql сервера делаю дамп базы данных в файл, а потом его упаковываю, может как то можно красиво сделать без создания временного файла?
СПАСИБО



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version