我们有一个长时间运行的php文件,可以在系统pipe理员需要的时候启动和终止。
如何确定每次运行php文件多长时间?
我无法看到任何东西
cat /var/log/message | grep filename
最简单的解决scheme是让脚本捕捉终止信号( SIGTERM / SIGINT ),然后计算并保存(或显示)退出之前的经过时间。 除非有错误,否则脚本将不会出现在任何日志中(特别是如果从CLI运行它)。 像下面的东西应该做的:
<?php $time_start = microtime(true); declare(ticks = 1); pcntl_signal(SIGTERM, "signal_handler"); pcntl_signal(SIGINT, "signal_handler"); function signal_handler($signal) { global $time_start; switch($signal) { case SIGTERM: case SIGINT: file_put_contents("runtime.txt", microtime(true) - $time_start); exit; } } //your script functions go here ?>
只要你不终止你的脚本将SIGKILL ,上面应该工作正常(例如,如果你终止与Ctrl+C , kill ,甚至killall ;只有kill -9不会让脚本捕获信号)。 [使用PHP-5.3.8进行RHEL / CentOStesting和工作]