Правильно ли организовал защиту от одновременного запуска php скрипта по cron?
$lock = sys_get_temp_dir()."/test.lock";
$aborted = file_exists($lock) ? filemtime($lock) : null;
$fp = fopen($lock, 'w');
if (!flock($fp, LOCK_EX|LOCK_NB)) {
exit( 'already running' );
}
// Тут код скрипта
// снятие блокировки по окончанию работы
// если этот callback, не будет выполнен, то блокировка
// все равно будет снята ядром, но файл останется
register_shutdown_function(function() use ($fp, $lock) {
flock($fp, LOCK_UN);
fclose($fp);
unlink($lock);
});
Если я теперь поставлю скрипт test.php на cron, то если скрипт еще работает, то крон его не выполнит, так?