Revision ecb08b78
Von Moritz Bunkus vor mehr als 12 Jahren hinzugefügt
SL/System/TaskServer.pm | ||
---|---|---|
|
||
use File::Slurp;
|
||
use File::Spec::Functions qw(:ALL);
|
||
use File::Temp qw(tempfile);
|
||
|
||
use SL::System::Process;
|
||
|
||
... | ... | |
sub _run_script_command {
|
||
my ($self, $command) = @_;
|
||
|
||
my $exe = catfile(catdir(SL::System::Process->exe_dir, 'scripts'), 'task_server.pl');
|
||
$self->last_command_output(`${exe} ${command}`);
|
||
my ($fh, $file_name) = tempfile();
|
||
my $exe = catfile(catdir(SL::System::Process->exe_dir, 'scripts'), 'task_server.pl');
|
||
|
||
system "${exe} ${command} >> ${file_name} 2>&1";
|
||
|
||
$fh->close;
|
||
|
||
$self->last_command_output(read_file($file_name));
|
||
|
||
return $? == 0 ? 1 : undef;
|
||
}
|
Auch abrufbar als: Unified diff
Task-Server-Control: Auch STDERR vom ausgeführten Kommando (start/stop) auslesen
Das geht leider nicht mehr mit
weil das nach dem Forken irgendwie einen Zombie-Prozess hinterlässt
und Perl aus dem `...` nicht zurückkehrt. Also die Variante mit
Umleitung in temporäre Datei wählen.