Revision ecb08b78
Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt
SL/System/TaskServer.pm | ||
---|---|---|
10 | 10 |
|
11 | 11 |
use File::Slurp; |
12 | 12 |
use File::Spec::Functions qw(:ALL); |
13 |
use File::Temp qw(tempfile); |
|
13 | 14 |
|
14 | 15 |
use SL::System::Process; |
15 | 16 |
|
... | ... | |
74 | 75 |
sub _run_script_command { |
75 | 76 |
my ($self, $command) = @_; |
76 | 77 |
|
77 |
my $exe = catfile(catdir(SL::System::Process->exe_dir, 'scripts'), 'task_server.pl'); |
|
78 |
$self->last_command_output(`${exe} ${command}`); |
|
78 |
my ($fh, $file_name) = tempfile(); |
|
79 |
my $exe = catfile(catdir(SL::System::Process->exe_dir, 'scripts'), 'task_server.pl'); |
|
80 |
|
|
81 |
system "${exe} ${command} >> ${file_name} 2>&1"; |
|
82 |
|
|
83 |
$fh->close; |
|
84 |
|
|
85 |
$self->last_command_output(read_file($file_name)); |
|
79 | 86 |
|
80 | 87 |
return $? == 0 ? 1 : undef; |
81 | 88 |
} |
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.