Seite 1 von 1

systembefehl absetzen und vergessen

Verfasst: Samstag 1. September 2012, 12:02
von chewbo
Hallo
ich suche eine Möglichkeit ein Systembefehlt bsp. wget (linux) abzusetzen und danach sozusagen zu vergessen. Am besten wäre es wenn der in einem eigenen Prozess
läuft. Die Ausgabe möchte ich nach Möglichkeit auch nicht sehen.
Es gibt ja verschiedenen möglichkeiten wie
subprocess
system
thread

Mir ist aber nicht klar was die beste Option für mich ist.

Danke im Vorraus
chewbo

Re: systembefehl absetzen und vergessen

Verfasst: Samstag 1. September 2012, 12:08
von cofi
Willkommen im Forum!

`subprocess.Popen` ist dein Freund: http://docs.python.org/library/subprocess.html
`thread` hat hiermit nichts zu tun und `os.system` solltest du vergessen.

Re: systembefehl absetzen und vergessen

Verfasst: Samstag 1. September 2012, 12:24
von chewbo
Danke für due schnelle Antwort, da habe ich ja das richtige gewählt. Jedoch ist mir nicht klar wie ich die Ausgabe umleite. Geht das nach /dev/null?

Re: systembefehl absetzen und vergessen

Verfasst: Samstag 1. September 2012, 12:28
von BlackJack
@chewbo: Wenn es plattformunabhängig sein darf, dann ist `os.devnull` der Name einer Datei die man zum Schreiben öffnen kann und wo das geschriebene einfach „verschwindet”.

Re: systembefehl absetzen und vergessen

Verfasst: Samstag 1. September 2012, 13:08
von cofi
Und noch alles zusammen:

Code: Alles auswählen

import os, subprocess
subprocess.Popen(['ls', '/'], stdout=open(os.devnull, 'w'), stderr=open(os.devnull, 'w'), close_fds=True)