|
Python - uruchomienie skryptu w bashu
czakll - 04-03-2009 11:40
Witam. Ostatnio wpadłem na pomysł na napisanie kontroli serwera z poziomu GG. Mam już skrypt do EKG, tylko teraz mam problem. Mianowicie nie wiem zupełnie jakby uruchomić skrypt w bashu z poziomu pythona. Wie może ktoś coś na ten temat? Pozdrawiam.
0x11 - 04-03-2009 11:48
Wykorzystaj funkcje systemowe.
beel - 04-03-2009 12:27
import subprocess try: retcode = subprocess.call("/sciezka/do/skryptu" + "ewentualnie argumenty", shell=True) except OSError, e: print >>subprocess.sys.stderr, "Błąd wykonania:", e
PS. Jak skończysz chętnie zobaczę efekt.
czakll - 10-03-2009 19:28
Coś mi nie idzie :/ Od razu mówię, że nie znam pythona, powoli się go uczę, ale z przykładów najlepiej idzie mi nauka ;) Wie ktoś co może być nie tak? Pozdrawiam
beel - 10-03-2009 19:48
Posprawdzaj dokładnie wcięcia w kodzie, spacje i inne białe znaki. Coś najprawdopodobniej się nie zgadza. Albo wrzuć więcej kodu, który uruchamiasz..
czakll - 13-03-2009 17:23
def odpal(): try: subprocess.call("sh /root/serw/start.sh", shell=True) except OSError, e: ekg.printf(subprocess.sys.stderr, "Błąd wykonania:", e) return 1
Mniej więcej w tym miejscu coś się nie zgadza :-|
beel - 13-03-2009 18:36
Tak jak mówiłem, pilnuj wcięć! W Pythonie jest to bardzo istotne, nie otwierasz i nie zamykasz jawnie za pomocą jakiegoś znaku np. '{' i '}' konkretnej sekcji, czy to klasy, czy funkcji.
Poprawnie jest tak: def odpal(): try: subprocess.call("sh /root/serw/start.sh", shell=True) except OSError, e: ekg.printf(subprocess.sys.stderr, "Blad wykonania:", e)
'return 1' pominąłem, bo nie wiem do czego chcesz to stosować.. i jaką miałoby pełnić rolę.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|