yiic.php 命令行脚本自动起多线程的问题

我执行一个命令行脚本:

/usr/local/php/bin/php yiic.php CollectApi Cron

结果过了没10分钟,进程里多了很多

www@web-19:/data/web/admin/protected/runtime/shell> ps aux | grep "php"

www 4789 0.8 2.2 101032 47224 pts/0 S+ 20:41 0:27 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5005 0.5 1.6 84596 33644 ? S 20:50 0:14 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5023 0.4 1.5 82788 32384 ? S 20:55 0:10 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5061 0.3 2.9 116296 61280 ? S 21:00 0:08 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5108 0.3 3.0 119940 64824 ? S 21:05 0:07 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5126 0.5 1.3 78372 27972 ? S 21:10 0:08 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5160 0.5 2.7 112396 57204 ? S 21:15 0:07 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5198 0.7 2.0 93836 41952 ? S 21:20 0:07 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5216 0.1 2.0 96380 43676 ? S 21:25 0:00 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5258 0.1 1.9 93776 41052 ? S 21:30 0:00 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5310 0.4 1.8 91440 38728 ? S 21:35 0:00 /usr/local/php/bin/php yiic.php CollectApi Cron

www 5315 0.0 0.0 5096 800 pts/1 S+ 21:37 0:00 grep php

强老大,怎么回事呢???

环境:

suse php5.3 php-fpm

cron里怎么写

从上面的信息看,这不是多线程,本身php没有多线程,就算有多线程,你查看进程也看到的也只是一个进程

如果说是多进程,在上面的信息显示的也不是多进程,因为各个进程没有关系,即主进程与子进程

分析上面的执行时间,感觉应该是你在crontab中设置了5分钟执行一次,但由于执行时候超过了5分钟,导致下一次crontab启动时,又被执行了,如果你不想启多个进程,可以在你的程序启动时检查一下当前进程中是否已经运行了你的程序。