Discussion:
script im hintergrund starten ?
(zu alt für eine Antwort)
Thomas Roskam
2003-11-23 02:51:16 UTC
Permalink
hallo!

bin noch relativ neu in der unix umgebung, und habe da mal eine frage!

ich habe ein kleines programm in perl mit Tk geschrieben.
von diesem programm will ich über einen button ein script ausführen.

das mache ich mit system();
das blöde ist nur, das mein programm dann blockiert,
da sich das script nicht selbst beendet. (soll auch so!)

das script soll dann auch so lange laufen, bis ich es manuell beende.


hoffe das ihr mir helfen könnt.

viele grüße
thomas roskam
--
das Recht auf ein gescheitertes Leben ist unantastbar
Alexander Bartolich
2003-11-23 07:09:04 UTC
Permalink
Post by Thomas Roskam
bin noch relativ neu in der unix umgebung, und habe da mal eine frage!
http://www.google.at/search?q=unix+programming+faq

=>

http://www.erlenstar.demon.co.uk/unix/faq_toc.html
Post by Thomas Roskam
ich habe ein kleines programm in perl mit Tk geschrieben.
man perl
man perlfunc
Post by Thomas Roskam
hoffe das ihr mir helfen könnt.
http://www.lugbz.org/documents/smart-questions_de.html
--
Für Google, Tux und GPL!
Roland Damm
2003-11-23 10:22:09 UTC
Permalink
Moin,
Post by Thomas Roskam
ich habe ein kleines programm in perl mit Tk geschrieben.
von diesem programm will ich über einen button ein script
ausführen.
das mache ich mit system();
das blöde ist nur, das mein programm dann blockiert,
da sich das script nicht selbst beendet. (soll auch so!)
Habe quasi genau das gleiche Problem neulich gehabt, nur mit
dem Unterschied, daß ich aus Zeitgründen nicht auf das Ende
des Skriptes warten konnte. Schließlich wurde es dann so
gestartet:
system("nice& -n19 script&");
Das 'nice' dabei dürfte dich nicht interessieren, das sorgt in
meinem Fall dafür, das das Skript keinem die Rechenzeit
wegnimmt. Das entscheidende ist das & nach dem Skriptnamen,
das sorgt für die Hintergrundausführung.

CU Rollo
--
Hier entsteht in Kürze eine neue Sig-Präsenz.
Alexander Bartolich
2003-11-23 12:57:22 UTC
Permalink
Post by Roland Damm
system("nice& -n19 script&");
Vollkommener Blödsinn.

$ nice & -n19 script &
[2] 1913
[3] 1914
-n19: Command not found.

Und wenn man schon Shell-Mechanismen verwendet, fehlt da 'nohup'.
Richtig (TM) macht man das mit fork/exec/wait oder fork/fork/exec.
Steht aber eh alles im FAQ.

Wobei es für C-Code noch eine Abkürzung gibt.
man popen
The popen() function opens a process by creating a pipe,
forking, and invoking the shell.
--
Für Google, Tux und GPL!
Roland Damm
2003-11-23 14:45:42 UTC
Permalink
Moin,
Post by Alexander Bartolich
Post by Roland Damm
system("nice& -n19 script&");
Vollkommener Blödsinn.
Tippfehler, oder besser gesagt, ist mir die richtige Syntax
auch alles andere als geläufig. Ich glaube, das erste & muß
weg.
Post by Alexander Bartolich
Und wenn man schon Shell-Mechanismen verwendet, fehlt da
'nohup'. Richtig (TM) macht man das mit fork/exec/wait oder
fork/fork/exec. Steht aber eh alles im FAQ.
Dieses Problem hatte ich in meinem Fall nicht, da das
C-Programm mit dem system()-Befehl darin selbst schon mit
nohup läuft.
Post by Alexander Bartolich
Wobei es für C-Code noch eine Abkürzung gibt.
man popen
The popen() function opens a process by creating a
pipe, forking, and invoking the shell.
Yo, auch schon drüber gestolpert. Ich wollte ja nicht sagen,
daß meine Lösung die einzige ist und vor allem nicht, daß es
die beste ist. Es ist eben eine mögliche Lösung.

CU Rollo
--
Hier entsteht in Kürze eine neue Sig-Präsenz.
Loading...