$PHP_SELF = realpath($_SERVER['PHP_SELF']); if (!($argc > 1)) { $lock_file = $PHP_SELF . '.lock'; } else { unset($argv[0]); $lock_file = $PHP_SELF . '.' . implode('.', $argv) . '.lock'; } $lock_file_handle = fopen($lock_file, 'w'); if ($lock_file_handle === false) die("Can not create lock file $lock_file "); if (!flock($lock_file_handle, LOCK_EX + LOCK_NB)) { die(date("Y-m-d H:i:s") . "Process already exists. "); }
此外,为防止出现定时脚本的死循环使服务器挂掉,要避免使用ini_set('memory_limit', -1)
想知道执行的程序需要多大内存可以使用函数memory_get_peak_usage()