Schrift
[thread]10721[/thread]

mehrere Programme via Perl starten

Leser: 1


<< >> 4 Einträge, 1 Seite
julian
 2007-11-05 01:39
#101859 #101859
User since
2007-11-05
1 Artikel
BenutzerIn
[default_avatar]
Hallo allerseits,

Ich möchte gerne mehrere Programme mit einem Perlscript starten.
Normalerweise starte ich diese über Befehle in der Shell. Damit ich diese aber nicht alle immer manuell eintippen muss, wollte ich nun ein Script bauen, was mir die Befehle nacheinander ausführt.
Jetzt habe ich folgenden Code:

Code (perl): (dl )
1
2
3
4
5
6
#!/usr/bin/perl

system("shellbefehl1");
system("shellbefehl2");
system("shellbefehl3");
#...


Dieses Script funktioniert aber nur teilweise, erst wenn ich das erste Programm mit Strg+c beende wird der zweite Befehl ausgeführt.
Gibt es eine Möglichkeit, dass das Script die Befehle parallel ausführt?
... und vielleicht einige der Programme in einer neuen Shell startet?

edit:
Kann man eventuell noch überprüfen ob die Programme erfolgreich gestartet wurden?

MfG
Julian
Froschpopo
 2007-11-05 02:15
#101862 #101862
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
wenn dir STDOUT egal ist, kannst du auch exec() nehmen. Mit exec kannst aber höchstens checken ob das programm evtl. nicht ausgeführt wird, dann gibts wahr. Aber programmeigene fehlermeldungen werden nicht mehr angenommen.
sowas kannste mit backticks machen.
Linuxer
 2007-11-05 02:16
#101863 #101863
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Hi,
wenn Du nur eine Liste von Befehlen/Kommandos ausführen lassen willst, dann ist ein Perl-Skript überdimensioniert ...

Mach doch ein simples Bash-Skript draus:

Code: (dl )
1
2
3
4
5
6
7
8
#!/bin/bash

# durch '&' startet der Befehl im Hintergrund;
befehl1 &

befehl2 &

befehl3 &
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Linuxer
 2007-11-05 02:20
#101864 #101864
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Mit exec kannst Du einen externen Befehl starten, der dann die PID des Skriptes übernimmt... Da ist weder was mit parallel ausführen, geschweige denn, dass der 2. Befehl zur Ausführung kommt. Das Skript selber wird beim ersten exec() beendet...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
<< >> 4 Einträge, 1 Seite



View all threads created 2007-11-05 01:39.