diff --git a/src/RawConnection.php b/src/RawConnection.php index 926ce37..89728a4 100644 --- a/src/RawConnection.php +++ b/src/RawConnection.php @@ -149,6 +149,20 @@ class RawConnection { return; } if ($terminate) { + $status = proc_get_status($this->process); + $ppid = $status['pid']; + $pids = preg_split('/\s+/', `ps -o pid --no-heading --ppid $ppid`); + foreach($pids as $pid) { + if(is_numeric($pid)) { + // try for case that posix_ functions are not available + try { + //9 is the SIGKILL signal + posix_kill($pid, 9); + } catch (\Exception $e) { + throw $e; + } + } + } proc_terminate($this->process); } proc_close($this->process);