从 PHP 调用外部 shell 脚本并获取其进程 ID
2022-08-30 15:04:21
如何从 PHP 本身调用外部 shell 脚本(或者调用外部 PHP 脚本)并在同一脚本中获取其进程 ID?
如何从 PHP 本身调用外部 shell 脚本(或者调用外部 PHP 脚本)并在同一脚本中获取其进程 ID?
$command = 'yourcommand' . ' > /dev/null 2>&1 & echo $!; ';
$pid = exec($command, $output);
var_dump($pid);
如果你想严格使用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;