Scheduler Erste Seite |
| JavaJavaScriptVBScriptPerl | Javadoc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Subprocess
Beispiel my_system() - Einfache Ausführung eines Kommandossub my_system
{
# Executes the command without processing of shell characters
my $cmd = shift;
my $timeout = shift;
my $subprocess = $spooler_task->create_subprocess();
$subprocess->LetProperty( "timeout", $timeout ) if defined $timeout;
$subprocess->start( $cmd );
$subprocess->wait_for_termination();
return $subprocess->exit_code;
}
sub shell
{
# Executes the command under the shell (Unix only)
my $cmd = shift;
my $timeout = shift;
my $subprocess = $spooler_task->create_subprocess();
$subprocess->LetProperty( "timeout", $timeout ) if defined $timeout;
$subprocess->start( [ "/bin/sh", "-c", $cmd ] );
$subprocess->wait_for_termination();
return $subprocess->exit_code;
}
Ein Subprozess ist irgendein Prozess, der mit
closeGibt die System-Ressourcen frei
Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort. Der envUmgebungsvariablen als Variable_set
Beispiel in javascriptvar subprocess = spooler_task.create_subprocess();
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
subprocess.wait_for_termination();
Liefert ein Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen können entfernt werden, indem sie auf Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können vom Prozess geänderte Umgebungsvariablen nicht gelesen werden. Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die meisten anderen Objekte sich im Prozess des Schedulers befinden). RückgabeVariable_set environmentUmgebungsvariablen
Beispiel in javascript// The following two statements have the same effect subprocess.environment( "my_variable" ) = "my_value" subprocess.env.value( "my_variable" ) = "my_value"
Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses dem neuen Subprozess übergeben. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Siehe auch Parameter
exit_code
Erst aufrufen, wenn ignore_errorVerhindert, dass beiexit_code != 0 der Job stoppt
Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Wenn das Ende des Subprocesses nicht mit Mit Parameter
ignore_signalVerhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt
Wirkt nicht unter Windows, weil es hier keine Signale gibt. Parameter
killBricht den Subprozess ab
Parameter
own_process_groupSubprozess als Prozessgruppe
Nur unter Unix. Der Default kann mit
Parameter
pidProzesskennung
priorityProzess-Priorität
Beispiel in javascriptsubprocess.priority = +5; // Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Parameter
priority_classPrioritätsklasse
Beispiel in javascriptsubprocess.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen:
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Siehe auch Parameter
startStartet den Prozess
Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler. Unter Unix wird stattdessen Shell-Operatoren wie Der Prozess wird unter Unix mit Parameter
terminated
Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend termination_signalSignal, mit dem sich der Prozess beendet hat (nur Unix)
Erst aufrufen, wenn timeoutFrist für den Subprozess
Nach Ablauf der Zeit bricht der Scheduler den Subprozess ab (Unix: mit Bei Ausführung auf einem entfernten Rechner mit Parameter
Meldungenwait_for_termination
Parameter
RückgabeBoolean
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zuletzt geändert von Joacim Zschimmer, 2007-10-25 |