我正在尝试使用反引号运算符运行 shell 命令,但子进程继承 php 的打开文件描述符这一事实是有问题的。有没有办法防止这种情况发生?
我正在运行 PHP 5.1.2
我真正知道的唯一方法是让孩子们在分叉后打开自己的资源。
这里有一个相当不错的关于 pcntl 的教程:
http://www.hackingwithphp.com/16/0/0/miscellaneous-topics http://www.hackingwithphp.com/16/1/4/duplication-of-resources-when-forking
这对我有用:
$cmd_to_run = escapeshellarg('/path/to/file --args');
`echo $cmd_to_run | /bin/at now`;
将 '/path/to/file --args' 部分替换为您要运行的命令。'at' 命令使用你的 cron 守护进程来安排任务。