uruchomienie i zabicie exe'ca w pythonie

0

Dzień dobry,
Mam prosty skrypcik w pythonie, który uruchamia mi program prog.exe z lokalnego folderu z jakimiś tam parametrami (za pomocą os.system() )
Mam z tym dwa problemy:

  • jak taki wywołany exe "wrzucić w tło" ? skrypt ma uruchomić execa i wykonywać się dalej
  • jak zabić takiego execa ? w pewnym momencie chcę zakończyć działanie prog.exe programu w trakcie działania skryptu

co do zabijania to rozwiązanie powinno działać pod win7 i xp - ważniejsze jest pod 7-ką

EDIT:
program odpalam w tle za pomocą subprocess.Popen("prog.exe")

  • jak go teraz zabić ?
0
p = subprocess.Popen("prog.exe")
# do something
p.terminate()

http://docs.python.org/library/subprocess.html

0

<quote=MarekR22>

p = subprocess.Popen("prog.exe")
# do something
p.terminate()

Właśnie z tego rozwiązania próbowałem korzystać - niestety to nie działa.
To co potrzebuję odpalić w tle to plik .bat - ani p.kill() ani p.terminate() nie kończy jego działania - proces kończy się dopiero gdy zamknę okno konsoli w którym odpalam skrypt.py
p.kill() działało tylko dla pojedynczych execów typu calc.exe, a ten bat to komenda z parametrami, zapisywaniem do pliku i dopiero po zamknięciu okna jest naprawdę zabijany - ale takie rozwiązanie jest mi niepotrzebne - tego bata muszę odpalić i zabić kilka razy w pętli.

0

Skoro jesteś przywiązany do windows, a funkcjonalonosć Popen nie pokrywa twoich wymagań na Windows, to może użyj windows'owych komend do zabijania procesu (kolejny Popen z odpowiednimi parametrami).

0
MarekR22 napisał(a)

Skoro jesteś przywiązany do windows

No własnie nie jestem.
Ale muszę to odpalić pod windą - założenie jest takie, że ma działać pod oboma systemami (windows i linuks).
Ten bat też będę potem przepisywał na pythona ale chwilowo musi zostać jaki jest.

1 użytkowników online, w tym zalogowanych: 0, gości: 1