我有一个很大的功能,我必须拨打50-100次。以前我用过像这样的bash脚本:
#!/bin/bash
for i in {1..50}
do
RET=0
until [ ${RET} -eq 1 ]; do
php /scripts/cli.php $i
RET=$?
done
done
但是我在bash脚本中不是很好,而我需要用返回的值来增加逻辑,所以我尝试在纯PHP中用这样的函数实现它:
<?
require_once('cli.php');
for($cnt=1; $cnt<=50; $cnt++){
$cli = cli($cnt);
}
?>
但是这种方法在10-15个周期后导致分段错误。是否可以在单独的进程中运行函数loke它是在bash脚本和清理资源以避免内存泄漏?
答案 0 :(得分:1)
是的,如果你需要访问子进程stdin / stdout / stderr,你可以查看proc_open,或者你可以使用更简单的函数:exec()或passthru()。
那说.. PHP不应该是段错误,必须有一些你正在使用的错误扩展。我更专注于解决问题,而不是创建变通方法。