Blame view

sources/3rdparty/symfony/process/Symfony/Component/Process/Tests/NonStopableProcess.php 812 Bytes
6d9380f96   Cédric Dupont   Update sources OC...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  <?php
  
  /**
   * Runs a PHP script that can be stopped only with a SIGKILL (9) signal for 3 seconds
   *
   * @args duration Run this script with a custom duration
   *
   * @example `php NonStopableProcess.php 42` will run the script for 42 seconds
   */
  
  function handleSignal($signal)
  {
      switch ($signal) {
          case SIGTERM:
              $name = 'SIGTERM';
              break;
          case SIGINT:
              $name = 'SIGINT';
              break;
          default:
              $name = $signal . ' (unknown)';
              break;
      }
  
      echo "received signal $name
  ";
  }
  
  declare(ticks = 1);
  pcntl_signal(SIGTERM, 'handleSignal');
  pcntl_signal(SIGINT, 'handleSignal');
  
  $duration = isset($argv[1]) ? (int) $argv[1] : 3;
  $start = microtime(true);
  
  while ($duration > (microtime(true) - $start)) {
      usleep(1000);
  }