From 60c1ff7634d5c9471f00db395d260f7d288888fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 9 Feb 2016 15:52:19 +0100 Subject: [PATCH] Register process control signel handlers only on execution of the command --- core/command/base.php | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/core/command/base.php b/core/command/base.php index a34d7ec1c9a..1591a2854db 100644 --- a/core/command/base.php +++ b/core/command/base.php @@ -49,15 +49,6 @@ class Base extends Command { $this->defaultOutputFormat ) ; - - // check if the php pcntl_signal functions are accessible - $this->php_pcntl_signal = function_exists('pcntl_signal'); - if ($this->php_pcntl_signal) { - // Collect interrupts and notify the running command - pcntl_signal(SIGTERM, [$this, 'cancelOperation']); - pcntl_signal(SIGINT, [$this, 'cancelOperation']); - } - } /** @@ -150,8 +141,19 @@ class Base extends Command { * * Gives a chance to the command to properly terminate what it's doing */ - private function cancelOperation() { + protected function cancelOperation() { $this->interrupted = true; } + public function run(InputInterface $input, OutputInterface $output) { + // check if the php pcntl_signal functions are accessible + $this->php_pcntl_signal = function_exists('pcntl_signal'); + if ($this->php_pcntl_signal) { + // Collect interrupts and notify the running command + pcntl_signal(SIGTERM, [$this, 'cancelOperation']); + pcntl_signal(SIGINT, [$this, 'cancelOperation']); + } + + return parent::run($input, $output); + } }