1class Background
2{
3
4 /*
5 $cmd -> A linha de comando a executar.
6 $opt -> Opção de parâmetros para o ambiente onde executa o script.
7 */
8 public static function Call($cmd, $opt = 'start')
9 {
10
11 if (stripos(php_uname('s'), 'windows') !== false) {
12 /*
13 Condições de parâmetros para ambiente Windows.
14 */
15 switch ($opt) {
16 default:
17 case 'start':
18 $prefix = 'start /B '; // Esse aqui é o padrão, pois é compatível com as versões mais recentes do Windows.
19 $sufix = '';
20 break;
21 case 'nul':
22 $prefix = '';
23 $sufix = ' > NUL 2> NUL';
24 break;
25 }
26 } else {
27 /*
28 Opções para ambiente *nix. (isso inclui os-x)
29 Normalmente o sufixo ` &` é compatível com diversas distribuições Linux. Esse parâmetro diz ao sistema operacional executar em background.
30 */
31 switch ($opt) {
32 default:
33 case '&':
34 $prefix = '';
35 $sufix = ' &';
36 break;
37 case 'dev-null':
38 $prefix = '';
39 $sufix = ' > /dev/null 2>/dev/null &';
40 break;
41 }
42 }
43
44 exec(sprintf('%s%s%s', $prefix, $cmd, $sufix));
45
46 return null;
47 }
48
49}
50
51define('PHP_PATH', '/local/do/binario/php');
52
53echo 'start '.microtime(true);
54Background::Call(PHP_PATH.' "/local/de/um/arquivo.php"');
55Background::Call(PHP_PATH.' "/local/de/um/arquivo.php"');
56Background::Call(PHP_PATH.' "/local/de/um/arquivo.php"');
57echo PHP_EOL.'end '.microtime(true);
58