Chr*_*der 23 php external-process
如何从PHP本身调用外部shell脚本(或者外部PHP脚本)并在同一脚本中获取其进程ID?
Bor*_*éry 41
$command = 'yourcommand' . ' > /dev/null 2>&1 & echo $!; ';
$pid = exec($command, $output);
var_dump($pid);
Run Code Online (Sandbox Code Playgroud)
Mar*_*ery 21
如果你想严格地使用PHP提供的工具,而不是特定于Unix的魔法,你可以使用proc_open
和proc_get_status
,尽管需要传递描述符规范proc_open
,这使得使用起来非常令人不快!
<?php
$descriptorspec = [
0 => ['pipe', 'r'],
1 => ['pipe', 'w'],
2 => ['pipe', 'w']
];
$proc = proc_open('yourcommand', $descriptorspec, $pipes);
$proc_details = proc_get_status($proc);
$pid = $proc_details['pid'];
echo $pid;
Run Code Online (Sandbox Code Playgroud)